~chipaca/ubuntuone-client/public_files_list_v2

« back to all changes in this revision

Viewing changes to tests/syncdaemon/test_states.py

  • Committer: Tarmac
  • Author(s): natalia.bidart at canonical
  • Date: 2010-04-12 17:10:25 UTC
  • mfrom: (480.1.7 handle-sys-server-error)
  • Revision ID: dobey@wayofthemonkey.com-20100412171025-a7pba1j1ss2b04bz
States now handles a new event called SYS_SERVER_ERROR.

Show diffs side-by-side

added added

removed removed

Lines of Context:
630
630
 
631
631
class TestConnectionManagerTimings(Base):
632
632
    """Times handled by ConnectionManager."""
 
633
 
633
634
    def setUp(self):
634
635
        Base.setUp(self)
635
636
 
651
652
    def test_handshaketimeout_setcapabilities(self):
652
653
        """Handshake timing is controlled in SetCapabilities."""
653
654
        return self.check('CHECK_VERSION', 'SYS_PROTOCOL_VERSION_OK',
654
 
                   'SYS_HANDSHAKE_TIMEOUT')
 
655
                          'SYS_HANDSHAKE_TIMEOUT')
655
656
 
656
657
    def test_handshaketimeout_authenticate(self):
657
658
        """Handshake timing is controlled in Authenticate."""
755
756
        return self.check('CHECK_VERSION', 'SYS_PROTOCOL_VERSION_ERROR',
756
757
                          'BAD_VERSION')
757
758
 
 
759
    def test_checkversion_server_error(self):
 
760
        """Transition CheckVersion -> Standoff."""
 
761
        return self.check('CHECK_VERSION', 'SYS_SERVER_ERROR', 'STANDOFF')
 
762
 
758
763
    def test_setcapabilities_authenticate(self):
759
764
        """Transition SetCapabilities -> Authenticate."""
760
765
        return self.check('SET_CAPABILITIES', 'SYS_SET_CAPABILITIES_OK',
765
770
        return self.check('SET_CAPABILITIES', 'SYS_SET_CAPABILITIES_ERROR',
766
771
                          'CAPABILITIES_MISMATCH')
767
772
 
 
773
    def test_setcapabilities_server_error(self):
 
774
        """Transition SetCapabilities -> Standoff."""
 
775
        return self.check('SET_CAPABILITIES', 'SYS_SERVER_ERROR', 'STANDOFF')
 
776
 
768
777
    def test_authenticate_serverrescan(self):
769
778
        """Transition Authenticate -> ServerRescan."""
770
779
        return self.check('AUTHENTICATE', 'SYS_AUTH_OK', 'SERVER_RESCAN')
773
782
        """Transition Authenticate -> Error."""
774
783
        return self.check('AUTHENTICATE', 'SYS_AUTH_ERROR', 'AUTH_FAILED')
775
784
 
 
785
    def test_authenticate_server_error(self):
 
786
        """Transition Authenticate -> Standoff."""
 
787
        return self.check('AUTHENTICATE', 'SYS_SERVER_ERROR', 'STANDOFF')
 
788
 
776
789
    def test_serverrescan_queuemanager(self):
777
790
        """Transition ServerRescan -> QueueManager."""
778
791
        return self.check('SERVER_RESCAN', 'SYS_SERVER_RESCAN_DONE',
779
792
                          'QUEUE_MANAGER')
780
793
 
 
794
    def test_serverrescan_standoff(self):
 
795
        """Transition ServerRescan -> Standoff."""
 
796
        return self.check('SERVER_RESCAN', 'SYS_SERVER_ERROR', 'STANDOFF')
 
797
 
781
798
    def test_network_events(self):
782
799
        """Don't make transition, and don't log warning."""
783
800
        nodes = ['INIT', 'READY', 'STANDOFF', 'QUEUE_MANAGER'] # examples
953
970
            d.append(self.check(node, 'SYS_CONNECTION_LOST', node))
954
971
            d.append(self.check(node, 'SYS_HANDSHAKE_TIMEOUT', node))
955
972
            d.append(self.check(node, 'SYS_CONNECTION_MADE', node))
 
973
            d.append(self.check(node, 'SYS_SERVER_ERROR', node))
956
974
        return defer.DeferredList(d)
957
975
 
958
976
 
1093
1111
        nodes = (StateManager.CHECK_VERSION, StateManager.SET_CAPABILITIES,
1094
1112
                 StateManager.AUTHENTICATE)
1095
1113
        events = ('SYS_NET_DISCONNECTED', 'SYS_USER_DISCONNECT',
1096
 
                  'SYS_HANDSHAKE_TIMEOUT')
 
1114
                  'SYS_HANDSHAKE_TIMEOUT', 'SYS_SERVER_ERROR')
1097
1115
        cnt = 0
1098
1116
        for node in nodes:
1099
1117
            for event in events:
1113
1131
        # from QUEUE_MANAGER
1114
1132
        self.assertEqual(self.aq.actions.count('disconnect'), cnt)
1115
1133
 
 
1134
    def test_server_rescan_to_standoff(self):
 
1135
        """ServerRescan transitions to Standoff generates an AQ.disconnect."""
 
1136
        # case of ServerRescan and SYS_SERVER_ERROR
 
1137
        self.aq.actions[:] = []
 
1138
        self.sm.state = StateManager.SERVER_RESCAN
 
1139
        self.sm.handle_default('SYS_SERVER_ERROR')
 
1140
        self.assertEqual(self.aq.actions, ['disconnect'])
 
1141
 
1116
1142
    def test_exit_queuemanager(self):
1117
1143
        """Exit transitions from QueueManager."""
1118
1144
        events = ('SYS_NET_DISCONNECTED', 'SYS_USER_DISCONNECT',