@@ -30,13 +30,81 @@ def test_login_dialog_creation() -> None:
3030 assert isinstance (dialog .button_cancel , QPushButton )
3131
3232
33- def test_login (qtbot : pytest .fixture ) -> None :
33+ def test_login_key (qtbot : pytest .fixture ) -> None :
3434 dialog = ONCatLogin (key = "test" )
3535 dialog .login_dialog = ONCatLoginDialog (agent = MagicMock (), parent = dialog )
3636 dialog .login_dialog .login_status .connect (check_status )
3737 qtbot .addWidget (dialog )
3838 dialog .show ()
3939
40+ assert dialog .client_id == "0123456489"
41+ assert dialog .token_path .endswith ("test_token.json" )
42+
43+ completed = False
44+
45+ def handle_dialog () -> None :
46+ nonlocal completed
47+
48+ qtbot .keyClicks (dialog .login_dialog .user_pwd , "password" )
49+ qtbot .wait (2000 )
50+ qtbot .mouseClick (dialog .login_dialog .button_login , QtCore .Qt .LeftButton )
51+ completed = True
52+
53+ def dialog_completed () -> None :
54+ nonlocal completed
55+ assert completed is True
56+
57+ QtCore .QTimer .singleShot (500 , functools .partial (handle_dialog ))
58+ qtbot .mouseClick (dialog .oncat_button , QtCore .Qt .LeftButton )
59+
60+ qtbot .waitUntil (dialog_completed , timeout = 5000 )
61+
62+
63+ def test_login_client_id (qtbot : pytest .fixture ) -> None :
64+ client_id = "12cnfjejsfsdf3456789ab"
65+ dialog = ONCatLogin (client_id = client_id )
66+ dialog .login_dialog = ONCatLoginDialog (agent = MagicMock (), parent = dialog )
67+ dialog .login_dialog .login_status .connect (check_status )
68+ qtbot .addWidget (dialog )
69+ dialog .show ()
70+
71+ assert dialog .client_id == client_id
72+ # token_12cnf.json
73+ assert dialog .token_path .endswith (f"{ client_id [0 :8 ]} _token.json" )
74+ completed = False
75+
76+ def handle_dialog () -> None :
77+ nonlocal completed
78+
79+ qtbot .keyClicks (dialog .login_dialog .user_pwd , "password" )
80+ qtbot .wait (2000 )
81+ qtbot .mouseClick (dialog .login_dialog .button_login , QtCore .Qt .LeftButton )
82+ completed = True
83+
84+ def dialog_completed () -> None :
85+ nonlocal completed
86+ assert completed is True
87+
88+ QtCore .QTimer .singleShot (500 , functools .partial (handle_dialog ))
89+ qtbot .mouseClick (dialog .oncat_button , QtCore .Qt .LeftButton )
90+
91+ qtbot .waitUntil (dialog_completed , timeout = 5000 )
92+
93+
94+ def test_login_client_id_key (qtbot : pytest .fixture ) -> None :
95+ client_id = "12cnfjejsfsdf3456789ab"
96+ key = "test"
97+
98+ dialog = ONCatLogin (client_id = client_id , key = key )
99+ dialog .login_dialog = ONCatLoginDialog (agent = MagicMock (), parent = dialog )
100+ dialog .login_dialog .login_status .connect (check_status )
101+ qtbot .addWidget (dialog )
102+ dialog .show ()
103+
104+ # client id provided as parameter
105+ assert dialog .client_id == client_id
106+ # key used for filename only token_shiver.json
107+ assert dialog .token_path .endswith (f"{ key } _token.json" )
40108 completed = False
41109
42110 def handle_dialog () -> None :
0 commit comments