11from collections .abc import Callable
2- from time import sleep
32
43import pytest
54
@@ -11,32 +10,28 @@ def test_sync_protocol_version():
1110 version = SyncClient .protocol_version ()
1211 assert version >= 1
1312
14- def test_sync_client_states (test_store ):
15- server_urls = ["ws://localhost:9999" ]
16- client = SyncClient (test_store , server_urls )
17- assert client .get_sync_state () == SyncState .CREATED
18- client .start ()
19- assert client .get_sync_state () == SyncState .STARTED
20- client .stop ()
21- assert client .get_sync_state () == SyncState .STOPPED
22- client .close ()
2313
24- def test_sync_listener (test_store , login_listener , connection_listener ):
25- server_urls = ["ws://127.0.0.1:9999" ]
26- client = SyncClient (test_store , server_urls )
27- client .set_credentials (SyncCredentials .shared_secret_string ("shared_secret" ))
28- client .set_login_listener (login_listener )
29- client .set_connection_listener (connection_listener )
14+ def test_sync_client_states (sync_client ):
15+ assert sync_client .get_sync_state () == SyncState .CREATED
16+ sync_client .start ()
17+ assert sync_client .get_sync_state () == SyncState .STARTED
18+ sync_client .stop ()
19+ assert sync_client .get_sync_state () == SyncState .STOPPED
20+ sync_client .close ()
3021
31- client .start ()
32- sleep (1 )
33- client .stop ()
34- client .close ()
3522
36- assert login_listener .login_failure_code is not None
37- assert login_listener .login_failure_code == SyncCode .CREDENTIALS_REJECTED
23+ def test_sync_listener (sync_server , sync_client , login_listener , connection_listener ):
24+ if not sync_server :
25+ pytest .skip ("Sync server not available" )
26+
27+ sync_client .start ()
28+ sync_client .wait_for_logged_in_state (timeout_millis = 5000 )
29+ sync_client .stop ()
30+ sync_client .close ()
31+
32+ assert login_listener .logged_in_called
33+ assert login_listener .login_failure_code is None
3834 assert connection_listener .connected_called
39- assert connection_listener .disconnected_called
4035
4136
4237def test_filter_variables (test_store ):
@@ -59,35 +54,29 @@ def test_filter_variables(test_store):
5954 client .close ()
6055
6156
62- def test_outgoing_message_count (test_store ):
63- server_urls = ["ws://localhost:9999" ]
64- client = SyncClient (test_store , server_urls )
65-
66- count = client .get_outgoing_message_count ()
57+ def test_outgoing_message_count (sync_client ):
58+ count = sync_client .get_outgoing_message_count ()
6759 assert count == 0
6860
69- count_limited = client .get_outgoing_message_count (limit = 10 )
61+ count_limited = sync_client .get_outgoing_message_count (limit = 10 )
7062 assert count_limited == 0
7163
72- client .close ()
73-
74- with pytest .raises (IllegalArgumentError , match = 'Argument "sync" must not be null' ):
75- client .get_outgoing_message_count ()
64+ sync_client .close ()
7665
66+ with pytest .raises (ValueError , match = 'SyncClient already closed' ):
67+ sync_client .get_outgoing_message_count ()
7768
78- def test_multiple_credentials (test_store ):
79- server_urls = ["ws://localhost:9999" ]
80- client = SyncClient (test_store , server_urls )
8169
70+ def test_multiple_credentials (sync_client ):
8271 # empty list should raise ValueError
8372 with pytest .raises (ValueError , match = 'Provide at least one credential' ):
84- client .set_multiple_credentials ([])
73+ sync_client .set_multiple_credentials ([])
8574
8675 # SyncCredentials.none() is not supported with multiple credentials
8776 with pytest .raises (ValueError , match = r'SyncCredentials.none\(\) is not supported, use set_credentials\(\) instead' ):
88- client .set_multiple_credentials ([SyncCredentials .none ()])
77+ sync_client .set_multiple_credentials ([SyncCredentials .none ()])
8978
90- client .set_multiple_credentials ([
79+ sync_client .set_multiple_credentials ([
9180 SyncCredentials .google_auth ("token_google" ),
9281 SyncCredentials .user_and_password ("user1" , "password" ),
9382 SyncCredentials .shared_secret_string ("secret1" ),
@@ -98,39 +87,34 @@ def test_multiple_credentials(test_store):
9887 ])
9988
10089
101- def test_client_closed_when_store_closed (test_store ):
102- server_urls = ["ws://localhost:9999" ]
103- client = SyncClient (test_store , server_urls )
104-
105- assert not client .is_closed ()
90+ def test_client_closed_when_store_closed (test_store , sync_client ):
91+ assert not sync_client .is_closed ()
10692 test_store .close ()
107- assert client .is_closed ()
93+ assert sync_client .is_closed ()
10894
10995
11096def assert_raises_value_error (fn : Callable [[], object | None ], message : str | None = None ):
11197 with pytest .raises (ValueError , match = message ):
11298 fn ()
11399
114100
115- def test_client_access_after_close_throws_error (test_store ):
116- server_urls = ["ws://localhost:9999" ]
117- client = SyncClient (test_store , server_urls )
118- client .close ()
101+ def test_client_access_after_close_throws_error (sync_client ):
102+ sync_client .close ()
119103
120- assert client .is_closed ()
104+ assert sync_client .is_closed ()
121105
122106 match_error = "SyncClient already closed"
123107
124- assert_raises_value_error (message = match_error , fn = lambda : client .start ())
125- assert_raises_value_error (message = match_error , fn = lambda : client .stop ())
126- assert_raises_value_error (message = match_error , fn = lambda : client .get_sync_state ())
127- assert_raises_value_error (message = match_error , fn = lambda : client .get_outgoing_message_count ())
128- assert_raises_value_error (message = match_error , fn = lambda : client .set_credentials (SyncCredentials .none ()))
108+ assert_raises_value_error (message = match_error , fn = lambda : sync_client .start ())
109+ assert_raises_value_error (message = match_error , fn = lambda : sync_client .stop ())
110+ assert_raises_value_error (message = match_error , fn = lambda : sync_client .get_sync_state ())
111+ assert_raises_value_error (message = match_error , fn = lambda : sync_client .get_outgoing_message_count ())
112+ assert_raises_value_error (message = match_error , fn = lambda : sync_client .set_credentials (SyncCredentials .none ()))
129113 assert_raises_value_error (message = match_error ,
130- fn = lambda : client .set_credentials (SyncCredentials .google_auth ("token_google" )))
131- assert_raises_value_error (message = match_error , fn = lambda : client .set_multiple_credentials ([
114+ fn = lambda : sync_client .set_credentials (SyncCredentials .google_auth ("token_google" )))
115+ assert_raises_value_error (message = match_error , fn = lambda : sync_client .set_multiple_credentials ([
132116 SyncCredentials .google_auth ("token_google" ),
133117 SyncCredentials .user_and_password ("user1" , "password" )
134118 ]))
135119 assert_raises_value_error (message = match_error ,
136- fn = lambda : client .set_request_updates_mode (SyncRequestUpdatesMode .AUTO ))
120+ fn = lambda : sync_client .set_request_updates_mode (SyncRequestUpdatesMode .AUTO ))
0 commit comments