def test_signals_and_skip(self):
        a = PkModelWithSkip.objects.create(name='James', cash=7)
        self.synchronize()
        self.wait()
        b = PkModelWithSkip.objects.db_manager(REMOTE).get(name='James')
        b.cash = 77  # some remote changes
        b.visits = 10
        b.save()
        self.assertEqual(0, a.visits)
        self.assertEqual(10, b.visits)
        # Adding some submodels
        self.wait()
        ModelWithFK.objects.create(name='1', link=a, visits=30)
        ModelWithFK.objects.create(name='2', link=a, visits=2)
        self.synchronize()
        self.assertRemoteCount(1, PkModelWithSkip)
        a = PkModelWithSkip.objects.get(name='James')
        b = PkModelWithSkip.objects.db_manager(REMOTE).get(name='James')
        self.assertEqual(32, a.visits)
        self.assertEqual(42, b.visits)
        self.assertEqual(77, b.cash)  # No change in cash
        # Change
        self.wait()
        m2 = ModelWithFK.objects.get(name='2')
        m2.visits = 37
        m2.save()
        self.synchronize()
        a = PkModelWithSkip.objects.get(name='James')
        b = PkModelWithSkip.objects.db_manager(REMOTE).get(name='James')
        self.assertEqual(67, a.visits)
        self.assertEqual(77, b.visits)
        self.assertEqual(77, b.cash)  # Still no change in cash
Some signal case from real life.
dataset/ETHPy150Open zlorf/django-synchro/synchro/tests.py/SignalSynchroTests.test_signals_and_skip