File tree 3 files changed +40
-10
lines changed
3 files changed +40
-10
lines changed Original file line number Diff line number Diff line change 1
- if __name__ == "__main__" :
2
- import socket # Import socket module
3
-
4
- ONE_CONNECTION_ONLY = (
5
- True # Set this to False if you wish to continuously accept connections
6
- )
1
+ def send_file (filename : str = "mytext.txt" , testing : bool = False ) -> None :
2
+ import socket
7
3
8
- filename = "mytext.txt"
9
4
port = 12312 # Reserve a port for your service.
10
5
sock = socket .socket () # Create a socket object
11
6
host = socket .gethostname () # Get local machine name
29
24
30
25
print ("Done sending" )
31
26
conn .close ()
32
- if (
33
- ONE_CONNECTION_ONLY
34
- ): # This is to make sure that the program doesn't hang while testing
27
+ if testing : # Allow the test to complete
35
28
break
36
29
37
30
sock .shutdown (1 )
38
31
sock .close ()
32
+
33
+
34
+ if __name__ == "__main__" :
35
+ send_file ()
Original file line number Diff line number Diff line change
1
+ from unittest .mock import patch , Mock
2
+
3
+
4
+ from file_transfer .send_file import send_file
5
+
6
+
7
+ @patch ("socket.socket" )
8
+ @patch ("builtins.open" )
9
+ def test_send_file_running_as_expected (file , sock ):
10
+ # ===== initialization =====
11
+ conn = Mock ()
12
+ sock .return_value .accept .return_value = conn , Mock ()
13
+ f = iter ([1 , None ])
14
+ file .return_value .__enter__ .return_value .read .side_effect = lambda _ : next (f )
15
+
16
+ # ===== invoke =====
17
+ send_file (filename = "mytext.txt" , testing = True )
18
+
19
+ # ===== ensurance =====
20
+ sock .assert_called_once ()
21
+ sock .return_value .bind .assert_called_once ()
22
+ sock .return_value .listen .assert_called_once ()
23
+ sock .return_value .accept .assert_called_once ()
24
+ conn .recv .assert_called_once ()
25
+
26
+ file .return_value .__enter__ .assert_called_once ()
27
+ file .return_value .__enter__ .return_value .read .assert_called ()
28
+
29
+ conn .send .assert_called_once ()
30
+ conn .close .assert_called_once ()
31
+ sock .return_value .shutdown .assert_called_once ()
32
+ sock .return_value .close .assert_called_once ()
Original file line number Diff line number Diff line change 3
3
fake_useragent
4
4
flake8
5
5
keras
6
+ lxml
6
7
matplotlib
7
8
mypy
8
9
numpy
You can’t perform that action at this time.
0 commit comments