@@ -108,8 +108,12 @@ def test_get_launch_info(self, rp_service, monkeypatch):
108
108
object with mocked session.
109
109
:param monkeypatch: Pytest fixture to safely set/delete an attribute
110
110
"""
111
- mock_get = mock .Mock (return_value = {'id' : 112 })
111
+ mock_resp = mock .Mock ()
112
+ mock_resp .status_code = 200
113
+
114
+ mock_get = mock .Mock (return_value = mock_resp )
112
115
monkeypatch .setattr (rp_service .session , 'get' , mock_get )
116
+ monkeypatch .setattr (rp_service , 'launch_id' , '1234-cafe' )
113
117
114
118
launch_id = rp_service .get_launch_info ()
115
119
mock_get .assert_called_once_with (
@@ -118,6 +122,64 @@ def test_get_launch_info(self, rp_service, monkeypatch):
118
122
verify = rp_service .verify_ssl )
119
123
assert launch_id == {'id' : 112 }
120
124
125
+ def test_get_launch_info_launch_id_none (self , rp_service , monkeypatch ):
126
+ """Test get launch information for a non started launch.
127
+
128
+ :param rp_service: Pytest fixture that represents ReportPortalService
129
+ object with mocked session.
130
+ :param monkeypatch: Pytest fixture to safely set/delete an attribute
131
+ """
132
+ mock_get = mock .Mock ()
133
+ monkeypatch .setattr (rp_service .session , 'get' , mock_get )
134
+ monkeypatch .setattr (rp_service , 'launch_id' , None )
135
+
136
+ launch_info = rp_service .get_launch_info ()
137
+ mock_get .assert_not_called ()
138
+ assert launch_info == {}
139
+
140
+ @mock .patch ('reportportal_client.service.sleep' , mock .Mock ())
141
+ @mock .patch ('reportportal_client.service._get_json' ,
142
+ mock .Mock (return_value = {"errorCode" : 4041 }))
143
+ def test_get_launch_info_wrong_launch_id (self , rp_service , monkeypatch ):
144
+ """Test get launch information for a non existed launch.
145
+
146
+ :param rp_service: Pytest fixture that represents ReportPortalService
147
+ object with mocked session.
148
+ :param monkeypatch: Pytest fixture to safely set/delete an attribute
149
+ """
150
+ mock_get = mock .Mock ()
151
+ monkeypatch .setattr (rp_service .session , 'get' , mock_get )
152
+ monkeypatch .setattr (rp_service , 'launch_id' , '1234' )
153
+
154
+ launch_info = rp_service .get_launch_info ()
155
+ expect (mock_get .call_count == 5 )
156
+ expect (launch_info == {})
157
+ assert_expectations ()
158
+
159
+ @mock .patch ('reportportal_client.service.sleep' , mock .Mock ())
160
+ @mock .patch ('reportportal_client.service._get_json' ,
161
+ mock .Mock (return_value = {'id' : 112 }))
162
+ def test_get_launch_info_1st_failed (self , rp_service , monkeypatch ):
163
+ """Test get launch information with 1st attempt failed.
164
+
165
+ :param rp_service: Pytest fixture that represents ReportPortalService
166
+ object with mocked session.
167
+ :param monkeypatch: Pytest fixture to safely set/delete an attribute
168
+ """
169
+ mock_resp1 = mock .Mock ()
170
+ mock_resp1 .status_code = 404
171
+ mock_resp2 = mock .Mock ()
172
+ mock_resp2 .status_code = 200
173
+ mock_get = mock .Mock ()
174
+ mock_get .side_effect = [mock_resp1 , mock_resp2 ]
175
+ monkeypatch .setattr (rp_service .session , 'get' , mock_get )
176
+ monkeypatch .setattr (rp_service , 'launch_id' , '1234' )
177
+
178
+ launch_info = rp_service .get_launch_info ()
179
+ expect (mock_get .call_count == 2 )
180
+ expect (launch_info == {'id' : 112 })
181
+ assert_expectations ()
182
+
121
183
def test_get_launch_ui_id (self , rp_service , monkeypatch ):
122
184
"""Test get launch UI ID.
123
185
@@ -131,6 +193,19 @@ def test_get_launch_ui_id(self, rp_service, monkeypatch):
131
193
mock_get_launch_info )
132
194
assert rp_service .get_launch_ui_id () == 113
133
195
196
+ def test_get_launch_ui_no_id (self , rp_service , monkeypatch ):
197
+ """Test get launch UI ID when no ID has been retrieved.
198
+
199
+ :param rp_service: Pytest fixture that represents ReportPortalService
200
+ object with mocked session.
201
+ :param monkeypatch: Pytest fixture to safely set/delete an attribute
202
+ """
203
+ mock_get_launch_info = mock .Mock (return_value = {})
204
+ monkeypatch .setattr (rp_service ,
205
+ 'get_launch_info' ,
206
+ mock_get_launch_info )
207
+ assert rp_service .get_launch_ui_id () is None
208
+
134
209
def test_get_launch_ui_url (self , rp_service , monkeypatch ):
135
210
"""Test get launch UI URL.
136
211
@@ -146,6 +221,21 @@ def test_get_launch_ui_url(self, rp_service, monkeypatch):
146
221
assert url == '{0}/ui/#{1}/launches/all/1' .format (rp_service .endpoint ,
147
222
rp_service .project )
148
223
224
+ def test_get_launch_ui_url_no_id (self , rp_service , monkeypatch ):
225
+ """Test get launch UI URL no ID has been retrieved.
226
+
227
+ :param rp_service: Pytest fixture that represents ReportPortalService
228
+ object with mocked session.
229
+ :param monkeypatch: Pytest fixture to safely set/delete an attribute
230
+ """
231
+ mock_get_launch_ui_id = mock .Mock (return_value = 0 )
232
+ monkeypatch .setattr (rp_service ,
233
+ 'get_launch_ui_id' ,
234
+ mock_get_launch_ui_id )
235
+ url = rp_service .get_launch_ui_url ()
236
+ assert url == '{0}/ui/#{1}/launches/all' .format (rp_service .endpoint ,
237
+ rp_service .project )
238
+
149
239
@mock .patch ('platform.system' , mock .Mock (return_value = 'linux' ))
150
240
@mock .patch ('platform.machine' , mock .Mock (return_value = 'Windows-PC' ))
151
241
@mock .patch ('platform.processor' , mock .Mock (return_value = 'amd' ))
0 commit comments