コード例 #1
0
 def ack_server(self):
     request = self.build_request(request_type='ACK', local_user=self.local_user)
     self.sock_backend.send(request.SerializeToString())
     data = self.sock_backend.recv() 
     resp = pbc.server_action()
     resp.ParseFromString(data)
     return resp
コード例 #2
0
ファイル: serverTest.py プロジェクト: cihaneryonucu/roughcert
 def test_add_user(cls):
     print('TEST #5: add user to server')
     second_user = {
         'username': '******',
         'ipAddr': '10.0.0.2',
         'port': 10002
     }
     userList = []
     userList.append(second_user)
     request = cpb.server_action()
     request.action = 'REG'
     request.user.username = second_user.get('username')
     request.user.ipAddr = second_user.get('ipAddr')
     request.user.port = int(second_user.get('port'))
     resp = cls.server.parse_command(request)
     cls.assertEqual(cls.server.userList, userList,
                     'Server Appends one user')
     cls.assertEqual(resp.result, 'Added user to contact list',
                     'Added user to contact list')
     resp = cls.server.parse_command(request)
     cls.assertEqual(cls.server.userList, userList,
                     'Server does not append the same user again')
     cls.assertEqual(resp.result,
                     'User is already present in contact contact list',
                     'User is already present in contact contact list')
コード例 #3
0
 def build_request(self, request_type, local_user):
     request = pbc.server_action()
     request.action = request_type
     request.user.username = self.local_user.get('username')
     request.user.ipAddr = self.local_user.get('ipAddr')
     request.user.port = int(self.local_user.get('port'))
     request.requestTime = int(time.time())
     return request
コード例 #4
0
 def remove_user(self):
     request = self.build_request(request_type='DEL', local_user=self.local_user)
     self.sock_backend.send(request.SerializeToString())
     self.logger.info('Sent DEL')
     data = self.sock_backend.recv()
     resp = pbc.server_action()
     resp.ParseFromString(data)
     self.logger.info(resp.result)
     return resp
コード例 #5
0
 def list_all_available_users(self, action):
     reply = cpb.server_action()
     for users in self.userList:
         reply.contacts.user.add()
         user = dict_to_protobuf(cpb.User, values=users)
         reply.contacts.user.append(user)
     reply.action = 'ACK'
     reply.result = 'Server listing all possible user'
     return reply
コード例 #6
0
 def server_loop(self):
     action = cpb.server_action()
     while True:
         data = self.socket.recv()
         action.ParseFromString(data)
         reply = self.parse_command(action)
         self.socket.send(reply.SerializeToString())
         if self._stop_event.isSet():
             break
コード例 #7
0
 def request_users(self):
     request = self.build_request(request_type='CTS', local_user=self.local_user)
     self.sock_backend.send(request.SerializeToString())
     self.logger.info('Sent CTS')
     data = self.sock_backend.recv()
     resp = pbc.server_action()
     resp.ParseFromString(data)
     self.logger.info(resp.result)
     self.contactList = self._unpack_user_list(resp)
     return resp
コード例 #8
0
 def register_user(self):
     request = self.build_request(request_type='REG', local_user=self.local_user)
     self.sock_backend.send(request.SerializeToString())
     self.logger.info('Sent REG')
     data = self.sock_backend.recv()
     resp = pbc.server_action()
     resp.ParseFromString(data)
     if resp.action == 'ACK':
         self.logger.info('Success')
         self.local_user = protobuf_to_dict(request.user)
     return resp
コード例 #9
0
 def register_user(self, action):
     reply = cpb.server_action()
     new_user = self.unpack_user(action)
     if new_user not in self.userList:
         self.userList.append(new_user)
         reply.result = 'Added user to contact list'
     else:
         self.logger.warning('User is present already! ')
         reply.result = 'User is already present in contact contact list'
     self.logger.info(self.userList)
     reply.action = 'ACK'
     return reply
コード例 #10
0
 def delete_user(self, action):
     reply = cpb.server_action()
     del_user = self.unpack_user(
         action
     )  #Remove the contact from the server - throw exception if contact not present
     try:
         self.userList.remove(del_user)
         reply.result = 'Deleted user from contact list'
     except ValueError:
         self.logger.warning("User not in list")
         reply.result = 'User is not present in contact list'
     reply.action = 'ACK'
     return reply
コード例 #11
0
ファイル: serverTest.py プロジェクト: cihaneryonucu/roughcert
 def test_remove_user(cls):
     print('TEST #6: remove user to server')
     second_user = {
         'username': '******',
         'ipAddr': '10.0.0.2',
         'port': 10002
     }
     request = cpb.server_action()
     request.action = 'DEL'
     request.user.username = second_user.get('username')
     request.user.ipAddr = second_user.get('ipAddr')
     request.user.port = int(second_user.get('port'))
     resp = cls.server.parse_command(request)
     cls.assertEqual(cls.server.userList, [], 'Server remove one user')
     cls.assertEqual(resp.result, 'Deleted user from contact list')
     resp = cls.server.parse_command(request)
     cls.assertEqual(cls.server.userList, [],
                     'Server does not attempt remove non existing users')
     cls.assertEqual(resp.result, 'User is not present in contact list',
                     'Cannot remove non existing users')
コード例 #12
0
 def n_ack_to_request(self):
     reply = cpb.server_action()
     self.logger.error('Cannot ACK request')
     reply.action = 'NACK'
     reply.result = 'Malformed request'
     return reply
コード例 #13
0
 def ack_to_request(self):
     reply = cpb.server_action()
     self.logger.info('Client ACk\'d our reply')
     reply.action = 'ACK'
     reply.result = 'Successful request'
     return reply
コード例 #14
0
ファイル: serverTest.py プロジェクト: cihaneryonucu/roughcert
 def test_acking(cls):
     print("TEST #4: ack from server")
     request = cpb.server_action()
     request.action = 'ACK'
     resp = cls.server.parse_command(request)
     cls.assertEqual(resp.action, 'ACK', 'Server Nack is correct')