Changeset View
Changeset View
Standalone View
Standalone View
swh/web/ui/tests/views/test_api.py
Show First 20 Lines • Show All 433 Lines • ▼ Show 20 Lines | def api_1_stat_counters(self, mock_service): | ||||
self.assertEquals(rv.status_code, 200) | self.assertEquals(rv.status_code, 200) | ||||
self.assertEquals(rv.mimetype, 'application/json') | self.assertEquals(rv.mimetype, 'application/json') | ||||
response_data = json.loads(rv.data.decode('utf-8')) | response_data = json.loads(rv.data.decode('utf-8')) | ||||
self.assertEquals(response_data, stub_stats) | self.assertEquals(response_data, stub_stats) | ||||
mock_service.stat_counters.assert_called_once_with() | mock_service.stat_counters.assert_called_once_with() | ||||
@patch('swh.web.ui.views.api.service') | @patch('swh.web.ui.views.api.service') | ||||
@istest | |||||
def api_1_stat_origin_visits_raise_error(self, mock_service): | |||||
# given | |||||
mock_service.stat_origin_visits.side_effect = ValueError( | |||||
'voluntary error to check the bad request middleware.') | |||||
# when | |||||
rv = self.app.get('/api/1/stat/visits/2/') | |||||
# then | |||||
self.assertEquals(rv.status_code, 400) | |||||
self.assertEquals(rv.mimetype, 'application/json') | |||||
response_data = json.loads(rv.data.decode('utf-8')) | |||||
self.assertEquals(response_data, { | |||||
'error': 'voluntary error to check the bad request middleware.'}) | |||||
@patch('swh.web.ui.views.api.service') | |||||
@istest | |||||
def api_1_stat_origin_visits_raise_swh_storage_error_db( | |||||
self, mock_service): | |||||
# given | |||||
mock_service.stat_origin_visits.side_effect = StorageDBError( | |||||
'SWH Storage exploded! Will be back online shortly!') | |||||
# when | |||||
rv = self.app.get('/api/1/stat/visits/2/') | |||||
# then | |||||
self.assertEquals(rv.status_code, 503) | |||||
self.assertEquals(rv.mimetype, 'application/json') | |||||
response_data = json.loads(rv.data.decode('utf-8')) | |||||
self.assertEquals(response_data, { | |||||
'error': | |||||
'An unexpected error occurred in the backend: ' | |||||
'SWH Storage exploded! Will be back online shortly!'}) | |||||
@patch('swh.web.ui.views.api.service') | |||||
@istest | |||||
def api_1_stat_origin_visits_raise_swh_storage_error_api( | |||||
self, mock_service): | |||||
# given | |||||
mock_service.stat_origin_visits.side_effect = StorageAPIError( | |||||
'SWH Storage API dropped dead! Will resurrect from its ashes asap!' | |||||
) | |||||
# when | |||||
rv = self.app.get('/api/1/stat/visits/2/') | |||||
# then | |||||
self.assertEquals(rv.status_code, 503) | |||||
self.assertEquals(rv.mimetype, 'application/json') | |||||
response_data = json.loads(rv.data.decode('utf-8')) | |||||
self.assertEquals(response_data, { | |||||
'error': | |||||
'An unexpected error occurred in the api backend: ' | |||||
'SWH Storage API dropped dead! Will resurrect from its ashes asap!' | |||||
}) | |||||
@patch('swh.web.ui.views.api.service') | |||||
@istest | |||||
def api_1_stat_origin_visits(self, mock_service): | |||||
# given | |||||
stub_stats = [ | |||||
{ | |||||
'date': 1420149600.0, | |||||
'origin': 1, | |||||
'visit': 1 | |||||
}, | |||||
{ | |||||
'date': 1104616800.0, | |||||
'origin': 1, | |||||
'visit': 2 | |||||
}, | |||||
{ | |||||
'date': 1293919200.0, | |||||
'origin': 1, | |||||
'visit': 3 | |||||
} | |||||
] | |||||
expected_stats = [1104616800.0, 1293919200.0, 1420149600.0] | |||||
mock_service.stat_origin_visits.return_value = stub_stats | |||||
# when | |||||
rv = self.app.get('/api/1/stat/visits/2/') | |||||
self.assertEquals(rv.status_code, 200) | |||||
self.assertEquals(rv.mimetype, 'application/json') | |||||
response_data = json.loads(rv.data.decode('utf-8')) | |||||
self.assertEquals(response_data, expected_stats) | |||||
mock_service.stat_origin_visits.assert_called_once_with(2) | |||||
@patch('swh.web.ui.views.api.service') | |||||
@patch('swh.web.ui.views.api.request') | @patch('swh.web.ui.views.api.request') | ||||
@istest | @istest | ||||
def api_uploadnsearch_bad_input(self, mock_request, mock_service): | def api_uploadnsearch_bad_input(self, mock_request, mock_service): | ||||
# given | # given | ||||
mock_request.files = {} | mock_request.files = {} | ||||
# when | # when | ||||
rv = self.app.post('/api/1/uploadnsearch/') | rv = self.app.post('/api/1/uploadnsearch/') | ||||
▲ Show 20 Lines • Show All 1,712 Lines • Show Last 20 Lines |