Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/api/test_utils.py
Show First 20 Lines • Show All 110 Lines • ▼ Show 20 Lines | class UtilsTestCase(WebTestCase): | ||||
@patch('swh.web.api.utils.reverse') | @patch('swh.web.api.utils.reverse') | ||||
def test_enrich_release_1(self, mock_django_reverse): | def test_enrich_release_1(self, mock_django_reverse): | ||||
# given | # given | ||||
def reverse_test_context(view_name, url_args): | def reverse_test_context(view_name, url_args): | ||||
if view_name == 'api-1-content': | if view_name == 'api-1-content': | ||||
id = url_args['q'] | id = url_args['q'] | ||||
return '/api/1/content/%s/' % id | return '/api/1/content/%s/' % id | ||||
elif view_name == 'api-1-person': | |||||
id = url_args['person_id'] | |||||
return '/api/1/person/%s/' % id | |||||
else: | else: | ||||
raise ValueError( | raise ValueError( | ||||
'This should not happened so fail if it does.') | 'This should not happened so fail if it does.') | ||||
mock_django_reverse.side_effect = reverse_test_context | mock_django_reverse.side_effect = reverse_test_context | ||||
# when | # when | ||||
actual_release = utils.enrich_release({ | actual_release = utils.enrich_release({ | ||||
'target': '123', | 'target': '123', | ||||
'target_type': 'content', | 'target_type': 'content', | ||||
'author': { | 'author': { | ||||
'id': 100, | 'id': 100, | ||||
'name': 'author release name', | 'name': 'author release name', | ||||
'email': 'author@email', | 'email': 'author@email', | ||||
}, | }, | ||||
}) | }) | ||||
# then | # then | ||||
self.assertEqual(actual_release, { | self.assertEqual(actual_release, { | ||||
'target': '123', | 'target': '123', | ||||
'target_type': 'content', | 'target_type': 'content', | ||||
'target_url': '/api/1/content/sha1_git:123/', | 'target_url': '/api/1/content/sha1_git:123/', | ||||
'author_url': '/api/1/person/100/', | |||||
'author': { | 'author': { | ||||
'id': 100, | 'id': 100, | ||||
'name': 'author release name', | 'name': 'author release name', | ||||
'email': 'author@email', | 'email': 'author@email', | ||||
}, | }, | ||||
}) | }) | ||||
mock_django_reverse.assert_has_calls([ | mock_django_reverse.assert_has_calls([ | ||||
call('api-1-content', url_args={'q': 'sha1_git:123'}), | call('api-1-content', url_args={'q': 'sha1_git:123'}), | ||||
call('api-1-person', url_args={'person_id': 100}) | |||||
]) | ]) | ||||
@patch('swh.web.api.utils.reverse') | @patch('swh.web.api.utils.reverse') | ||||
def test_enrich_release_2(self, mock_django_reverse): | def test_enrich_release_2(self, mock_django_reverse): | ||||
# given | # given | ||||
mock_django_reverse.return_value = '/api/1/dir/23/' | mock_django_reverse.return_value = '/api/1/dir/23/' | ||||
# when | # when | ||||
▲ Show 20 Lines • Show All 251 Lines • ▼ Show 20 Lines | ): | ||||
# given | # given | ||||
def reverse_test(view_name, url_args): | def reverse_test(view_name, url_args): | ||||
if view_name == 'api-1-revision': | if view_name == 'api-1-revision': | ||||
return '/api/revision/' + url_args['sha1_git'] + '/' | return '/api/revision/' + url_args['sha1_git'] + '/' | ||||
elif view_name == 'api-1-revision-log': | elif view_name == 'api-1-revision-log': | ||||
return '/api/revision/' + url_args['sha1_git'] + '/log/' | return '/api/revision/' + url_args['sha1_git'] + '/log/' | ||||
elif view_name == 'api-1-directory': | elif view_name == 'api-1-directory': | ||||
return '/api/directory/' + url_args['sha1_git'] + '/' | return '/api/directory/' + url_args['sha1_git'] + '/' | ||||
elif view_name == 'api-1-person': | |||||
return '/api/person/' + url_args['person_id'] + '/' | |||||
mock_django_reverse.side_effect = reverse_test | mock_django_reverse.side_effect = reverse_test | ||||
# when | # when | ||||
actual_revision = utils.enrich_revision({ | actual_revision = utils.enrich_revision({ | ||||
'id': 'rev-id', | 'id': 'rev-id', | ||||
'directory': '123', | 'directory': '123', | ||||
'author': {'id': '1'}, | 'author': {'id': '1'}, | ||||
'committer': {'id': '2'}, | 'committer': {'id': '2'}, | ||||
}) | }) | ||||
expected_revision = { | expected_revision = { | ||||
'id': 'rev-id', | 'id': 'rev-id', | ||||
'directory': '123', | 'directory': '123', | ||||
'url': '/api/revision/rev-id/', | 'url': '/api/revision/rev-id/', | ||||
'history_url': '/api/revision/rev-id/log/', | 'history_url': '/api/revision/rev-id/log/', | ||||
'directory_url': '/api/directory/123/', | 'directory_url': '/api/directory/123/', | ||||
'author': {'id': '1'}, | 'author': {'id': '1'}, | ||||
'author_url': '/api/person/1/', | |||||
'committer': {'id': '2'}, | 'committer': {'id': '2'}, | ||||
'committer_url': '/api/person/2/' | |||||
} | } | ||||
# then | # then | ||||
self.assertEqual(actual_revision, expected_revision) | self.assertEqual(actual_revision, expected_revision) | ||||
mock_django_reverse.assert_has_calls( | mock_django_reverse.assert_has_calls( | ||||
[call('api-1-revision', url_args={'sha1_git': 'rev-id'}), | [call('api-1-revision', url_args={'sha1_git': 'rev-id'}), | ||||
call('api-1-revision-log', url_args={'sha1_git': 'rev-id'}), | call('api-1-revision-log', url_args={'sha1_git': 'rev-id'}), | ||||
call('api-1-person', url_args={'person_id': '1'}), | |||||
call('api-1-person', url_args={'person_id': '2'}), | |||||
call('api-1-directory', url_args={'sha1_git': '123'})]) | call('api-1-directory', url_args={'sha1_git': '123'})]) | ||||
@patch('swh.web.api.utils.reverse') | @patch('swh.web.api.utils.reverse') | ||||
def test_enrich_revision_with_children_and_parent_no_dir( | def test_enrich_revision_with_children_and_parent_no_dir( | ||||
self, mock_django_reverse, | self, mock_django_reverse, | ||||
): | ): | ||||
# given | # given | ||||
mock_django_reverse.side_effect = self._reverse_context_test | mock_django_reverse.side_effect = self._reverse_context_test | ||||
▲ Show 20 Lines • Show All 137 Lines • Show Last 20 Lines |