@@ -20,11 +20,21 @@ def sftp_session(ssh_client_session):
2020        del  sftp_sess   # noqa: WPS420 
2121
2222
23- @pytest .fixture  
24- def  transmit_payload ():
25-     """Generate a binary test payload.""" 
26-     uuid_name  =  uuid .uuid4 ()
27-     return  'Hello, {name!s}' .format (name = uuid_name ).encode ()
23+ @pytest .fixture ( 
24+     params = (32 , 1024  +  1 ), 
25+     ids = ('small-payload' , 'large-payload' ), 
26+ ) 
27+ def  transmit_payload (request : pytest .FixtureRequest ):
28+     """Generate binary test payloads of assorted sizes. 
29+ 
30+     The choice 32 is arbitrary small value. 
31+ 
32+     The choice 1024 + 1 is meant to be 1B larger than the chunk size used in 
33+     sftp.pyx to make sure we excercise at least two rounds of reading/writing. 
34+     """ 
35+     payload_len  =  request .param 
36+     random_bytes  =  [ord (random .choice (string .printable )) for  _  in  range (payload_len )]  # NOSONAR 
37+     return  bytes (random_bytes )
2838
2939
3040@pytest .fixture  
@@ -93,35 +103,3 @@ def test_put_existing(dst_exists_path, src_path, sftp_session, transmit_payload)
93103    """Check that SFTP file upload works when target file exists.""" 
94104    sftp_session .put (str (src_path ), str (dst_exists_path ))
95105    assert  dst_exists_path .read_bytes () ==  transmit_payload 
96- 
97- 
98- @pytest .fixture  
99- def  large_payload ():
100-     """Generate a large 1025 byte (1024 + 1B) test payload.""" 
101-     payload_len  =  1024  +  1 
102-     random_bytes  =  [ord (random .choice (string .printable )) for  _  in  range (payload_len )]
103-     return  bytes (random_bytes )
104- 
105- 
106- @pytest .fixture  
107- def  src_path_large (tmp_path , large_payload ):
108-     """Return a remote path to a 1025 byte-sized file. 
109- 
110-     The pylibssh chunk size is 1024 so the test needs a file that would 
111-     execute at least two loops. 
112-     """ 
113-     path  =  tmp_path  /  'large.txt' 
114-     path .write_bytes (large_payload )
115-     return  path 
116- 
117- 
118- def  test_put_large (dst_path , src_path_large , sftp_session , large_payload ):
119-     """Check that SFTP can upload large file.""" 
120-     sftp_session .put (str (src_path_large ), str (dst_path ))
121-     assert  dst_path .read_bytes () ==  large_payload 
122- 
123- 
124- def  test_get_large (dst_path , src_path_large , sftp_session , large_payload ):
125-     """Check that SFTP can download large file.""" 
126-     sftp_session .get (str (src_path_large ), str (dst_path ))
127-     assert  dst_path .read_bytes () ==  large_payload 
0 commit comments