Skip to content

Commit 0aca5e7

Browse files
committed
Add config and fix some files
1 parent b067287 commit 0aca5e7

File tree

9 files changed

+125
-18
lines changed

9 files changed

+125
-18
lines changed

chat_client/src/main.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import logging
2+
import os
23
from getpass import getpass
34

45
import grpc
@@ -159,7 +160,7 @@ def _open_chat_receiver(self) -> None:
159160
response_iterator = self._stub.RecieveMessages(
160161
chat_pb2.RecieveMessagesRequest(to_user_login=self._username)
161162
)
162-
self._receiver = chat_receiver.ChatReceiver(response_iterator)
163+
self._receiver = ChatReceiver(response_iterator)
163164
self._receiver.start()
164165

165166
def _start_chat(self) -> None:
@@ -273,7 +274,7 @@ def _close_chat_receiver(self) -> None:
273274
if __name__ == "__main__":
274275
logging.basicConfig(format="%(message)s", level=logging.DEBUG)
275276

276-
chat_client = ChatClient("localhost", 50051)
277+
chat_client = ChatClient(os.environ["CHAT_SERVER_IP_ADDR"], 50051)
277278

278279
chat_client.connect()
279280
chat_client.run()

chat_server/Dockerfile

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,15 @@ FROM python:3.11
22

33
EXPOSE 50051
44

5-
RUN mkdir /chat_server
6-
VOLUME /chat_server/src
5+
ENV ETCD_SERVER_IP_ADDR=${ETCD_SERVER_IP_ADDR}
76

8-
WORKDIR /chat_server/src
9-
10-
# COPY protobufs/ /service/protobufs/
11-
# COPY chat_server/src /service/chat_server/src
12-
# RUN python -m -I. --python_out=/service/chat_server/src --pyi_out=/service/chat_server/src \
13-
# --grpc_python_out=/service/chat_server/src protobufs/chat.proto
14-
COPY requirements.txt .
7+
COPY . /grpc_chat/chat_server/
158

9+
WORKDIR /grpc_chat/
10+
RUN ls
11+
RUN ls chat_server
12+
RUN ls chat_server/src
1613
RUN python -m pip install --upgrade pip
17-
RUN python -m pip install --no-cache-dir -r requirements.txt
18-
19-
COPY . .
14+
RUN python -m pip install --no-cache-dir -r chat_server/requirements.txt
2015

21-
CMD ["python", "-u", "./main.py"]
16+
CMD ["python", "-u","-m", "chat_server.src.main"]

chat_server/tests/test_main.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,5 +106,62 @@ def test_send_message_user_not_found(self,
106106
f"User Bruce not found"
107107
)
108108

109+
@patch("chat_server.src.main.chat_pb2")
110+
@patch("chat_server.src.main.EtcdMessagesHandler")
111+
@patch("chat_server.src.main.logging")
112+
@patch("chat_server.src.main.Parse")
113+
def test_receive_messages(self,
114+
parse: Mock,
115+
_logging: Mock,
116+
etcd_message_handler: Mock,
117+
chat_pb2: Mock):
118+
"""Tests chat_server.src.auth.login_user() method."""
119+
request = Mock(
120+
message=Mock(
121+
to_user_login="Batman",
122+
)
123+
)
124+
context = Mock(
125+
is_active=Mock(
126+
return_value=True
127+
)
128+
)
129+
msg_handler = Mock(
130+
get_elems_from_queue=Mock(
131+
side_effect=[
132+
[("1", "Message1"), ("2", "Message2"), ("3", "Message3")],
133+
[],
134+
[("1", "Message4"), ("2", "Message5"), ("3", "Message6")],
135+
InterruptedError()
136+
]
137+
)
138+
)
139+
etcd_message_handler.return_value = msg_handler
140+
empt_message = Mock()
141+
chat_pb2.Message.return_value = empt_message
142+
143+
list(self.chat_server.RecieveMessages(request, context))
144+
145+
etcd_message_handler.assert_called_once_with(
146+
client=self.etcd_client,
147+
to_user="Batman"
148+
)
149+
150+
self.assertEqual(msg_handler.call_count, 3)
151+
152+
parse.assert_has_calls(
153+
call("Message1", empt_message),
154+
call("Message2", empt_message),
155+
call("Message3", empt_message),
156+
call("Message4", empt_message),
157+
call("Message5", empt_message),
158+
call("Message6", empt_message),
159+
)
160+
self.assertEqual(_logging.debug.call_count, 4)
161+
msg_handler.store_and_delete_sent_messages.assert_called_once_with(
162+
[("1", "Message4"), ("2", "Message5"), ("3", "Message6")])
163+
_logging.info.assert_called_once_with()
164+
165+
109166
if __name__ == '__main__':
110167
unittest.main()

common/Dockerfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
FROM python:3.8
2+
COPY /*.py* /grpc_chat/common/
3+
RUN ls
4+
RUN ls /grpc_chat
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ services:
55
build:
66
context: ./chat_server
77
dockerfile: Dockerfile
8-
image: chat_server
9-
volumes:
10-
- ./chat_server/src:/chat_server/src
8+
image: chat-server:0.1.0
9+
environment:
10+
- ETCD_SERVER_IP_ADDR=172.28.0.2
1111
ports:
1212
- 50051:50051
1313
networks:

grpc_chat_deployment.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: grpc-chat-deployment
5+
labels:
6+
app: grpc-chat
7+
spec:
8+
replicas: 2
9+
selector:
10+
matchLabels:
11+
app: grpc-chat-label
12+
template:
13+
metadata:
14+
labels:
15+
app: grpc-chat-label
16+
spec:
17+
nodeSelector:
18+
type: backend
19+
containers:
20+
- name: grpc-chat-container
21+
image: chat-server:0.1.0
22+
env:
23+
- name: ETCD_SERVER_IP_ADDR
24+
value: 172.28.0.2
25+
ports:
26+
- containerPort: 50051

grpc_chat_service.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: apps/v1
2+
kind: Service
3+
metadata:
4+
name: grpc-chat-service
5+
labels:
6+
app: grpc-chat-label
7+
spec:
8+
ports:
9+
- port: 50051
10+
targetPort: 50051
11+
protocol: TCP
12+
selector:
13+
app: grpc-chat-label

kind_config.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
kind: Cluster
2+
apiVersion: kind.x-k8s.io/v1alpha4
3+
nodes:
4+
- role: control-plane
5+
- role: worker
6+
labels:
7+
type: backend
8+
- role: worker
9+
labels:
10+
type: backend

tox.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ deps =
1313
commands =
1414
coverage erase
1515
coverage run -m pytest --junitxml=pytest-report.xml
16+
coverage xml -i
1617

1718
[coverage:report]
1819
skip_empty = true

0 commit comments

Comments
 (0)