def test_success(self): bintray_files_endpoint_response = [ { 'owner': 'typesafe', 'repo': 'bundle', 'package': 'reactive-maps-frontend', 'version': 'v1-023f9da22', 'path': 'download/path.zip' } ] get_json_mock = MagicMock(return_value=bintray_files_endpoint_response) with patch('conductr_cli.resolvers.bintray_resolver.get_json', get_json_mock): result = bintray_resolver.bintray_resolve_version('username', 'password', 'typesafe', 'bundle', 'reactive-maps-frontend', 'v1', '023f9da22') self.assertEqual(result, { 'org': 'typesafe', 'repo': 'bundle', 'package_name': 'reactive-maps-frontend', 'compatibility_version': 'v1', 'digest': '023f9da22', 'path': 'download/path.zip', 'resolver': bintray_resolver.__name__ }) get_json_mock.assert_called_with( 'https://api.bintray.com/packages/typesafe/bundle/reactive-maps-frontend/versions/v1-023f9da22/files', 'username', 'password')
def test_no_version(self): bintray_attributes_endpoint_response = { } get_json_mock = MagicMock(return_value=bintray_attributes_endpoint_response) with patch('conductr_cli.resolvers.bintray_resolver.get_json', get_json_mock): result = bintray_resolver.bintray_resolve_version('username', 'password', 'typesafe', 'bundle', 'reactive-maps-frontend', 'v1', None) self.assertIsNone(result) get_json_mock.assert_called_with('https://api.bintray.com/packages/typesafe/bundle/reactive-maps-frontend/attributes?names=latest-v1', 'username', 'password')
def test_latest_version_from_attribute_names(self): package_endpoint_response = { 'latest_version': '', 'attribute_names': [ 'latest-v9', 'latest-v10' ] } bintray_attributes_v10_endpoint_response = [ { 'name': 'latest-v10', 'type': 'version', 'values': [ 'v10-023f9da22' ] } ] bintray_files_v10_endpoint_response = [ { 'owner': 'typesafe', 'repo': 'bundle', 'package': 'reactive-maps-frontend', 'version': 'v10-023f9da22', 'path': 'download/path.zip' } ] get_json_mock = MagicMock(side_effect=[package_endpoint_response, bintray_attributes_v10_endpoint_response, bintray_files_v10_endpoint_response]) with patch('conductr_cli.resolvers.bintray_resolver.get_json', get_json_mock): result = bintray_resolver.bintray_resolve_version('username', 'password', 'typesafe', 'bundle', 'reactive-maps-frontend', None, None) self.assertEqual(result, { 'org': 'typesafe', 'repo': 'bundle', 'package_name': 'reactive-maps-frontend', 'compatibility_version': 'v10', 'digest': '023f9da22', 'path': 'download/path.zip', 'resolver': bintray_resolver.__name__ }) self.assertEqual( get_json_mock.call_args_list, [ call('https://api.bintray.com/packages/typesafe/bundle/reactive-maps-frontend', 'username', 'password'), call('https://api.bintray.com/packages/typesafe/bundle/reactive-maps-frontend/attributes?names=latest-v10', 'username', 'password'), call('https://api.bintray.com/packages/typesafe/bundle/reactive-maps-frontend/versions/v10-023f9da22/files', 'username', 'password') ] )