Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added Lisson_8/Tests/__init__.py
Empty file.
68 changes: 68 additions & 0 deletions Lisson_8/Tests/test_client.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# from pprint import pprint
import sys
# pprint(sys.path)
sys.path.append('../') # Выбрал вариант покороче
# pprint(sys.path)
# import os
# sys.path.append(os.path.join(os.getcwd(), '..'))
# pprint(sys.path)
import unittest
from client import create_presence, process_server_answer
from common.variables import USER, ACCOUNT_NAME, ACTION, TIME, PRESENCE, ERROR, RESPONSE


class TestCreatePresence(unittest.TestCase):

def setUp(self):
# print('Начало теста')
pass

def tearDown(self):
# print('Конец теста')
pass

def test_create_presence_default_account_name(self):
self.assertEqual(create_presence()[USER][ACCOUNT_NAME], 'Guest',
'Не праильно назначено default_name')

def test_create_presence_account_name(self):
self.assertEqual(create_presence('Alex')[USER][ACCOUNT_NAME], 'Alex',
'Не правильно назначено account_name !!!')

def test_create_presence_action(self):
self.assertEqual(create_presence()[ACTION], 'presence',
'Не правильное значение action в словаре !!!')

def test_create_presence_time(self):
test = create_presence()
test[TIME] = 1.1
self.assertEqual(test, {ACTION: PRESENCE, TIME: 1.1, USER: {ACCOUNT_NAME: 'Guest'}},
'Не правильное значение time !!!')


class TestProcessServerAnswer(unittest.TestCase):

def setUp(self):
pass

def tearDown(self):
pass

def test_process_server_answer_200(self):
test_message = {RESPONSE: 200}
self.assertEqual(process_server_answer(test_message), '200 : OK', 'Не верный ответ на код 200')

def test_process_server_answer_400(self):
test_message = {RESPONSE: 400,
ERROR: 'Bad Request'
}
self.assertEqual(process_server_answer(test_message), f'400 : {test_message[ERROR]}',
'Не верный ответ на код отличный от 200')

def test_process_server_answer_no_response(self):
self.assertRaises(ValueError, process_server_answer, {ERROR: 'Bad Request'})


if __name__ == "__main__":
unittest.main()

48 changes: 48 additions & 0 deletions Lisson_8/Tests/test_server.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import sys
import os
sys.path.append(os.path.join(os.getcwd(), '..'))
import unittest
from server import process_client_message
from common.variables import RESPONSE, ERROR, ACTION, PRESENCE, TIME, USER, ACCOUNT_NAME


class TestProcessClientMessage(unittest.TestCase):
correct_dict = {RESPONSE: 200}
error_dict = {
RESPONSE: 400,
ERROR: 'Bad Request'
}

def setUp(self):
pass

def tearDown(self):
pass

def test_process_client_message_ok_check(self):
self.assertEqual(process_client_message({ACTION: PRESENCE, TIME: 1.1, USER: {ACCOUNT_NAME: 'Guest'}}),
self.correct_dict, 'Ошибка при корректном запросе !!!')

def test_process_client_message_no_action(self):
self.assertEqual(process_client_message({TIME: 1.1, USER: {ACCOUNT_NAME: 'Guest'}}),
self.error_dict, 'Ошибка нет action !!!')

def test_process_client_message_no_correct_action(self):
self.assertEqual(process_client_message({ACTION: 'Test', TIME: 1.1, USER: {ACCOUNT_NAME: 'Guest'}}),
self.error_dict, 'Ошибка при неизвестном action !!!')

def test_process_client_message_no_time(self):
self.assertEqual(process_client_message({ACTION: PRESENCE, USER: {ACCOUNT_NAME: 'Guest'}}),
self.error_dict, 'Ошибка при отсутствии TIME !!!')

def test_process_client_message_no_user(self):
self.assertEqual(process_client_message({ACTION: PRESENCE, TIME: 1.1}),
self.error_dict, 'Ошибка при отсутствии USER !!!')

def test_process_client_message_unknown_user(self):
self.assertEqual(process_client_message({ACTION: PRESENCE, TIME: 1.1, USER: {ACCOUNT_NAME: 'test'}}),
self.error_dict, 'Ошибка при неизвестном USER !!!')


if __name__ == "__main__":
unittest.main()
71 changes: 71 additions & 0 deletions Lisson_8/Tests/test_unit.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import sys
import os
sys.path.append(os.path.join(os.getcwd(), '..'))
import unittest
from common.variables import ENCODING, MAX_PACKAGE_LENGTH, ACTION, PRESENCE, \
TIME, USER, ACCOUNT_NAME, RESPONSE, ERROR
import json
from common.utils import send_message, get_message


class TestSocket:
def __init__(self, test_dict):
self.test_dict = test_dict
self.encoded_message = None
self.received_message = None

def send(self, message_to_send):
json_test_message = json.dumps(self.test_dict)
self.encoded_message = json_test_message.encode(ENCODING)
self.received_message = message_to_send

def recv(self, max_len):
json_test_message = json.dumps(self.test_dict)
return json_test_message.encode(ENCODING)


class TestUtils(unittest.TestCase):

test_dict_send = {
ACTION: PRESENCE,
TIME: 1.1,
USER: {
ACCOUNT_NAME: 'test_name'
}
}

test_dict_recv_correct = {RESPONSE: 200}
test_dict_recv_error = {
RESPONSE: 400,
ERROR: 'Bad Request'
}

def setUp(self):
pass

def tearDown(self):
pass

def test_get_message_correct(self):
test_socket_correct = TestSocket(self.test_dict_recv_correct)
test_socket_error = TestSocket(self.test_dict_recv_error)
self.assertEqual(get_message(test_socket_correct), self.test_dict_recv_correct)

def test_get_message_error(self):
test_socket_correct = TestSocket(self.test_dict_recv_correct)
test_socket_error = TestSocket(self.test_dict_recv_error)
self.assertEqual(get_message(test_socket_error), self.test_dict_recv_error)

def test_send_message(self):
test_socket = TestSocket(self.test_dict_send)
send_message(test_socket, self.test_dict_send)
self.assertEqual(test_socket.encoded_message, test_socket.received_message)

def test_send_message_raise(self):
test_socket = TestSocket(self.test_dict_send)
send_message(test_socket, self.test_dict_send)
self.assertRaises(TypeError, send_message, test_socket, "Неправильный словарь")


if __name__ == '__main__':
unittest.main()
Loading