def test_consumer_only(self, mock_get_bound, mock_find): mock_get_bound.return_value = ['repo1', 'repo2'] releases.view('consumer1', constants.FORGE_NULL_AUTH_VALUE, 'foo/bar') mock_get_bound.assert_called_once_with('consumer1') mock_find.assert_called_once_with(['repo1', 'repo2'], 'foo/bar')
def test_repo_ids_from_query_string(self, mock_get_data, mock_unit_generator, mock_host): mock_get_data.return_value = { 'repo1': {'db': mock.MagicMock(), 'protocol': 'http'}, } mock_unit_generator.return_value = [unit_generator()] releases.view(constants.FORGE_NULL_AUTH_VALUE, 'repo_foo', 'me/mymodule') mock_get_data.assert_called_once_with(['repo_foo'])
def test_db_closing(self, mock_get_data, mock_unit_generator, mock_host): mock_get_data.return_value = { 'repo1': {'db': mock.MagicMock(), 'protocol': 'http'}, 'repo2': {'db': mock.MagicMock(), 'protocol': 'http'}, } mock_unit_generator.return_value = [unit_generator()] releases.view(constants.FORGE_NULL_AUTH_VALUE, 'repo_foo', 'me/mymodule') mock_get_data.return_value['repo1']['db'].close.assert_called_once_with() mock_get_data.return_value['repo2']['db'].close.assert_called_once_with()
def test_calculating_deps_default(self, mock_get_data, mock_unit_generator, mock_host): mock_get_data.return_value = { 'repo1': {'db': mock.MagicMock(), 'protocol': 'http'}, } u1 = unit_generator(version='1.0.0') mock_unit_generator.return_value = [u1] u1_built_data = u1.build_dep_metadata(True) u1.build_dep_metadata = mock.Mock(return_value=u1_built_data) releases.view(constants.FORGE_NULL_AUTH_VALUE, 'repo_foo', 'me/mymodule') u1.build_dep_metadata.assert_called_once_with(True)
def test_repo_ids_from_consumer(self, mock_get_bounds, mock_get_data, mock_unit_generator, mock_host): mock_get_bounds.return_value = ['apple', 'pear'] mock_get_data.return_value = { 'repo1': {'db': mock.MagicMock(), 'protocol': 'http'} } mock_unit_generator.return_value = [unit_generator()] releases.view('consumer1', constants.FORGE_NULL_AUTH_VALUE, 'me/mymodule') mock_get_bounds.assert_called_once_with('consumer1') mock_get_data.assert_called_once_with(['apple', 'pear'])
def GET(self): """ Credentials here are not actually used for authorization, but instead are used to identify: consumer ID in the username field repository ID in the password field This is to work around the fact that the "puppet module install" command has hard-coded absolute paths, so we cannot put consumer or repository IDs in the URL's path. """ credentials = self._get_credentials() if not credentials: return web.unauthorized() module_name = self._get_module_name() if not module_name: # apparently our version of web.py, 0.36, doesn't take a message # parameter for error handlers like this one. Ugh. return web.badrequest() version = web.input().get('version') web.header('Content-Type', 'application/json') data = releases.view(*credentials, module_name=module_name, version=version) return json.dumps(data)
def get_releases(self, *args, **kwargs): """ Get the list of matching releases :return: The matching modules :rtype: dict """ return releases.view(*args, recurse_deps=False, view_all_matching=True, **kwargs)
def get_releases(self, *args, **kwargs): """ Get the list of matching releases :return: The matching modules :rtype: dict """ return releases.view(*args, **kwargs)
def test_db_closing_with_exception(self, mock_get_data, mock_unit_generator): mock_get_data.return_value = { 'repo1': {'db': mock.MagicMock(), 'protocol': 'http'}, 'repo2': {'db': mock.MagicMock(), 'protocol': 'http'}, } mock_unit_generator.return_value = [] data = releases.view(constants.FORGE_NULL_AUTH_VALUE, 'repo_foo', 'me/mymodule') self.assertEqual(data.status_code, 404) mock_get_data.return_value['repo1']['db'].close.assert_called_once_with() mock_get_data.return_value['repo2']['db'].close.assert_called_once_with()
def test_filtering_view_all_true(self, mock_get_data, mock_unit_generator, mock_host): mock_get_data.return_value = { 'repo1': {'db': mock.MagicMock(), 'protocol': 'http'}, } u1 = unit_generator(version='1.0.0') u2 = unit_generator(version='2.0.0') mock_unit_generator.return_value = [u1, u2] result = releases.view(constants.FORGE_NULL_AUTH_VALUE, 'repo_foo', 'me/mymodule', view_all_matching=True) self.assertTrue('me/mymodule' in result) self.assertEquals(2, len(result['me/mymodule']))
def test_db_closing_with_exception(self, mock_get_data, mock_unit_generator): mock_get_data.return_value = { 'repo1': { 'db': mock.MagicMock(), 'protocol': 'http' }, 'repo2': { 'db': mock.MagicMock(), 'protocol': 'http' }, } mock_unit_generator.return_value = [] data = releases.view(constants.FORGE_NULL_AUTH_VALUE, 'repo_foo', 'me/mymodule') self.assertEqual(data.status_code, 404) mock_get_data.return_value['repo1'][ 'db'].close.assert_called_once_with() mock_get_data.return_value['repo2'][ 'db'].close.assert_called_once_with()
def test_close_unit_db(self, mock_find): result = releases.view(constants.FORGE_NULL_AUTH_VALUE, 'repo1', 'foo/bar') mock_find.return_value.db.close.assert_called_once_with()
def test_with_version(self, mock_find): result = releases.view(constants.FORGE_NULL_AUTH_VALUE, 'repo1', 'foo/bar', '1.0.0') mock_find.assert_called_once_with(['repo1'], 'foo/bar', '1.0.0') self.assertEqual(result, mock_find.return_value.build_dep_metadata.return_value)
def test_with_version(self, mock_find): result = releases.view(constants.FORGE_NULL_AUTH_VALUE, 'repo1', 'foo/bar', '1.0.0') mock_find.assert_called_once_with(['repo1'], 'foo/bar', '1.0.0') self.assertEqual( result, mock_find.return_value.build_dep_metadata.return_value)
def test_repo_and_consumer(self, mock_find): # should ignore the consumer releases.view('consumer1', 'repo1', 'foo/bar') mock_find.assert_called_once_with(['repo1'], 'foo/bar')
def test_null_auth(self): data = releases.view(constants.FORGE_NULL_AUTH_VALUE, constants.FORGE_NULL_AUTH_VALUE, 'foo/bar') self.assertEqual(data.status_code, 401)