Beispiel #1
0
 def run(self):
     """@param utc: unit test class"""
     sleep(0.1)
     sck = socket(AF_INET, SOCK_STREAM)
     sck = ssl.wrap_socket(sck)
     sck.connect(('127.0.0.1', TESTING_PORT))
     sck = SSLSocket(sck)
     sck.settimeout(3)
     self.utc.assertRaises(DataNotAvailable, sck.read, 1)                    
     sck.close()
Beispiel #2
0
 def run(self):
     """@param utc: unit test class"""
     sleep(0.1)
     sck = socket(AF_INET, SOCK_STREAM)
     sck = ssl.wrap_socket(sck)
     sck.connect(('127.0.0.1', TESTING_PORT))
     sck = SSLSocket(sck)
     pkdata = sck.read(100, less=True, peek=True)
     data = sck.read(100, less=True)
     self.utc.assertEquals(pkdata, 'Long string? Not enough.')
     self.utc.assertEquals(data, 'Long string? Not enough.')
     self.utc.assertRaises(ChannelClosed, sck.read, 1)
     sck.close()
Beispiel #3
0
    def test_timeout(self):
        """
        Tests sock failing due to timeout
        """
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        jsonsocket.TIME_OUT_SECONDS = 5

        sock.settimeout(15)

        self.assertRaises(FatalException, sock.read, 1)
Beispiel #4
0
    def test_timeout(self):
        """
        Tests sock failing due to timeout
        """
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        jsonsocket.TIME_OUT_SECONDS = 5

        sock.settimeout(15)

        self.assertRaises(FatalException, sock.read, 1)
Beispiel #5
0
    def test_failed_connect(self):
        """
        Tests logging in on invalid credentials
        """
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        sock.settimeout(5)

        sock.write(pkjson({'login': '******', 'password': '******'}))
        response = rdjson(sock)

        self.assertEquals(response['status'], 'fail')
Beispiel #6
0
    def test_successful_connect(self):
        """
        Tests logging in on valid credentials
        """
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        sock.settimeout(5)

        sock.write(pkjson({'login': '******', 'password': '******'}))
        response = rdjson(sock)

        self.assertEquals(response['status'], 'ok')
        self.assertEquals(isinstance(self.events_received.get(), PlayerOnline), True)
Beispiel #7
0
    def test_login_and_timeout(self):
        """
        Tests logging in and then timeouting
        """
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        sock.settimeout(15)
        jsonsocket.TIME_OUT_SECONDS = 5

        sock.write(pkjson({'login': '******', 'password': '******'}))
        response = rdjson(sock)
        self.assertEquals(isinstance(self.events_received.get(), PlayerOnline), True)

        self.assertRaises(FatalException, sock.read, 1)       # timeout

        # we should be signalled as timeouters
        self.assertEquals(isinstance(self.events_received.get(), PlayerOffline), True)
Beispiel #8
0
    def test_patchthru_connect(self):
        """
        Tests relaying data from EventProcessor to SelectLayer
        """        
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        sock.settimeout(7)

        sock.write(pkjson({'login': '******', 'password': '******'}))
        response = rdjson(sock)

        self.assertEquals(response['status'], 'ok')

        # at this point stanislav is logged in and we can force sending data
        self.events_sent.put(SendData(1, {'hello': 'world'}))

        jsp = rdjson(sock)
        self.assertEquals(jsp['hello'], 'world')
Beispiel #9
0
 def run(self):
     """@param utc: unit test class"""
     sleep(0.1)
     sck = socket(AF_INET, SOCK_STREAM)
     sck = ssl.wrap_socket(sck)
     sck.connect(('127.0.0.1', TESTING_PORT))
     sck = SSLSocket(sck)
     sck.write('Hello World')
     self.pkdata = sck.read(3, less=False, peek=True)
     self.data = sck.read(1)
     self.data2 = sck.read(2)
     self.utc.assertRaises(ChannelClosed, sck.read, 1)
     sck.close()
Beispiel #10
0
    def test_nonblocking_connect(self):
        class MySelectHandlingLayer(SelectHandlingLayer):
            def __init__(self, utc):
                SelectHandlingLayer.__init__(self)
                self.utc = utc
                self.ok = False

            def on_connected(self, channel):
                # at this point data should have been flushed
                self.ok = True

        mshl = MySelectHandlingLayer(self)
        sck = SSLSocket(socket(AF_INET, SOCK_STREAM))
        mshl.register_channel(sck)
        sck.connect(('www.google.com', 80))  # that was just nonblocking

        a = time()
        while (time() - a < 30) and (not mshl.ok):
            mshl.select()

        self.assertEquals(mshl.ok, True)
Beispiel #11
0
 def run(self):
     sleep(0.2)
     sck = socket(AF_INET, SOCK_STREAM)
     sck = ssl.wrap_socket(sck)
     sck.connect(('127.0.0.1', TESTING_PORT))
     sck = SSLSocket(sck)
     sck.write('Hello World')
     self.utc.assertEquals(sck.read(1), '1')
     self.utc.assertEquals(sck.read(1), '2')
     sck.close()
Beispiel #12
0
    def test_failed_connect(self):
        """
        Tests logging in on invalid credentials
        """
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        sock.settimeout(5)

        sock.write(pkjson({'login': '******', 'password': '******'}))
        response = rdjson(sock)

        self.assertEquals(response['status'], 'fail')
Beispiel #13
0
    def test_successful_connect(self):
        """
        Tests logging in on valid credentials
        """
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        sock.settimeout(5)

        sock.write(pkjson({'login': '******', 'password': '******'}))
        response = rdjson(sock)

        self.assertEquals(response['status'], 'ok')
        self.assertEquals(isinstance(self.events_received.get(), PlayerOnline),
                          True)
Beispiel #14
0
    def test_patchinfo_connect(self):
        """
        Tests relaying data from SelectLayer to EventProcessor
        """
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        sock.settimeout(5)

        sock.write(pkjson({'login': '******', 'password': '******'}))
        response = rdjson(sock)

        self.assertEquals(response['status'], 'ok')
        self.assertEquals(isinstance(self.events_received.get(), PlayerOnline),
                          True)

        sock.write(pkjson({'test_data': 'indeed'}))
        el = self.events_received.get()

        self.assertEquals(isinstance(el, DataArrived), True)
        self.assertEquals(el.pid, 1)
        self.assertEquals(el.data['test_data'], 'indeed')
Beispiel #15
0
    def test_patchinfo_connect(self):
        """
        Tests relaying data from SelectLayer to EventProcessor
        """
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        sock.settimeout(5)

        sock.write(pkjson({'login': '******', 'password': '******'}))
        response = rdjson(sock)

        self.assertEquals(response['status'], 'ok')
        self.assertEquals(isinstance(self.events_received.get(), PlayerOnline), True)

        sock.write(pkjson({'test_data': 'indeed'}))
        el = self.events_received.get()

        self.assertEquals(isinstance(el, DataArrived), True)
        self.assertEquals(el.pid, 1)
        self.assertEquals(el.data['test_data'], 'indeed')
Beispiel #16
0
    def test_patchthru_connect(self):
        """
        Tests relaying data from EventProcessor to SelectLayer
        """
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        sock.settimeout(7)

        sock.write(pkjson({'login': '******', 'password': '******'}))
        response = rdjson(sock)

        self.assertEquals(response['status'], 'ok')

        # at this point stanislav is logged in and we can force sending data
        self.events_sent.put(SendData(1, {'hello': 'world'}))

        jsp = rdjson(sock)
        self.assertEquals(jsp['hello'], 'world')
Beispiel #17
0
    def test_login_and_timeout(self):
        """
        Tests logging in and then timeouting
        """
        sock = ssl.wrap_socket(socket(AF_INET, SOCK_STREAM))
        sock.connect(('127.0.0.1', TESTING_PORT))
        sock = SSLSocket(sock)

        sock.settimeout(15)
        jsonsocket.TIME_OUT_SECONDS = 5

        sock.write(pkjson({'login': '******', 'password': '******'}))
        response = rdjson(sock)
        self.assertEquals(isinstance(self.events_received.get(), PlayerOnline),
                          True)

        self.assertRaises(FatalException, sock.read, 1)  # timeout

        # we should be signalled as timeouters
        self.assertEquals(
            isinstance(self.events_received.get(), PlayerOffline), True)