Example #1
0
def create_event_from_string(response_from_server):
    pr = event_parser.EventParser()
    event_from_server = pr.parse_string_to_event(response_from_server)

    if event_from_server.event_type == event_types.LOGIN_RESPONSE:

        if event_from_server.code == event_types.CODE_ACCEPT:
            logging.info("LOGIN ACCEPTED")
            module_var.isLogged = True

        # When username exists
        elif event_from_server.code == event_types.CODE_REJECT:
            logging.info("LOGIN REJECT")

    elif event_from_server.event_type == event_types.MESSAGE_REQUEST:
        event_from_server_object = {
            'user': event_from_server.login,
            'messageText': event_from_server.message,
            'created': event_from_server.timestamp
        }
        module_var.all_messages.append(event_from_server_object)

    elif event_from_server.event_type == event_types.ONLINE_REQUEST:
        module_var.online_list.clear()
        module_var.online_list = eval(event_from_server.online_users)
Example #2
0
async def handle_connection(reader, writer):
    addr = writer.get_extra_info('peername')
    logging.info(str(addr) + " connected")
    while True:
        try:
            data = await get_data_from_client(reader)
            event = event_parser.EventParser().parse_string_to_event(data)
        except (IndexError, ValueError) as e:
            removed_username = online_store.remove_by_writer(writer)
            if not removed_username == None:
                logging.info("REMOVING: " + str(removed_username))
                writer.close()
                message = event_types.MessageRequest(
                    "SERVER", removed_username + " disconnected")
                await pass_massage(message.convert_to_string())
            break

        if event.event_type == event_types.MESSAGE_REQUEST:
            await pass_massage(data)

        elif event.event_type == event_types.LOGIN_REQUEST:

            code = ''

            if not online_store.check_if_online(event.login):
                code = event_types.CODE_ACCEPT
            else:
                code = event_types.CODE_REJECT

            login_response = event_types.LoginResponse(code)

            if login_response.code == event_types.CODE_ACCEPT:
                online_store.add_new_user(event.login, writer)
                message = event_types.MessageRequest(
                    "SERVER", event.login + " connected")
                await pass_massage(message.convert_to_string())

            await send_data_to_client(writer,
                                      login_response.convert_to_string())

        elif event.event_type == event_types.LOGOUT_REQUEST:
            removed_username = online_store.remove_by_writer(writer)
            if not removed_username == None:
                logging.info("LOGGING OUT: " + str(removed_username))
                message = event_types.MessageRequest(
                    "SERVER", removed_username + " disconnected")
                await pass_massage(message.convert_to_string())
        else:
            await send_data_to_client(writer, "mordo ja nie wiem")

        await writer.drain()
Example #3
0
class TestParserMethods(unittest.TestCase):
    x = event_types.BaseRequest('test')
    y = event_types.LoginRequest('test2')

    pr = event_parser.EventParser()

    def test_if_object_is_base_type(self):

        parsed_object = self.pr.parse_string_to_event(
            self.x.convert_to_string())

        self.assertEqual(parsed_object.event_type, event_types.BASE, msg=None)

    def test_if_object_is_login_request(self):
        parsed_object = self.pr.parse_string_to_event(
            self.y.convert_to_string())
        self.assertEqual(parsed_object.event_type,
                         event_types.LOGIN_REQUEST,
                         msg=None)

    def test_if_get_full_length_is_valid_login(self):
        self.assertEqual(21,
                         event_parser.get_full_length("length:10$$login:user"))

    def test_if_get_full_length_is_valid_msg(self):
        self.assertEqual(
            113,
            event_parser.get_full_length(
                "length:101$$event_type:msg$$login:user$"))

    def test_if_colon_message(self):
        event = event_parser.EventParser().parse_string_to_event(
            event_types.MessageRequest("login",
                                       ":co:tam:").convert_to_string())
        self.assertEqual(":co:tam:", event.message)

    def test_if_colon(self):
        event = event_parser.EventParser().parse_string_to_event(
            event_types.MessageRequest("login", ":").convert_to_string())
        self.assertEqual(":", event.message)

    def test_two_dollars(self):
        event = event_parser.EventParser().parse_string_to_event(
            event_types.MessageRequest("login", "$$").convert_to_string())
        self.assertEqual("$$", event.message)
Example #4
0
 def test_two_dollars(self):
     event = event_parser.EventParser().parse_string_to_event(
         event_types.MessageRequest("login", "$$").convert_to_string())
     self.assertEqual("$$", event.message)
Example #5
0
 def test_if_colon(self):
     event = event_parser.EventParser().parse_string_to_event(
         event_types.MessageRequest("login", ":").convert_to_string())
     self.assertEqual(":", event.message)
Example #6
0
import event_types
import event_parser
import unittest
'''
Use examples 
'''
x = event_types.BaseRequest('test')

y = event_types.LoginRequest('test2')

messageRequest = event_types.MessageRequest('test3', "Hello, it's a test")
onlineRequest = event_types.OnlineRequest()

onlineRequest.add_user("test")

pr = event_parser.EventParser()

lr = event_types.LoginResponse(event_types.CODE_ACCEPT)

lr_error = event_types.LoginResponse(event_types.CODE_ERROR)

ret_obj = pr.parse_string_to_event(y.convert_to_string())
message_obj = pr.parse_string_to_event(messageRequest.convert_to_string())


class TestStringMethods(unittest.TestCase):

    x = event_types.BaseRequest('test')

    y = event_types.LoginRequest('test2')