def side_effect(name): if 'main_app' in name: return utils.Package(utils.File(pkg1)) if 'dep_app' in name: return utils.Package(utils.File(pkg2)) if 'dep_of_dep' in name: return utils.Package(utils.File(pkg3))
def test_file_object_from_file(self): f_obj = tempfile.NamedTemporaryFile(delete=True) new_f_obj = utils.File(f_obj).open() self.assertTrue(hasattr(new_f_obj, 'read')) new_f_obj = utils.File(f_obj.name).open() self.assertTrue(hasattr(new_f_obj, 'read'))
def side_effect(name): if 'M' in name: return utils.Package(utils.File(pkg1)) if 'd1' in name: return utils.Package(utils.File(pkg2)) if 'd2' in name: return utils.Package(utils.File(pkg3)) if 'd3' in name: return utils.Package(utils.File(pkg4)) if 'd4' in name: return utils.Package(utils.File(pkg5))
def test_package_from_directory(self): path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "fixture_data/empty-app") pkg = utils.Package(utils.File(path)) self.assertEqual('empty', pkg.manifest['FullName']) pkg = utils.Package.from_location('', path=path) self.assertEqual('empty', pkg.manifest['FullName'])
def test_file_object_url(self): resp = requests.Response() resp.raw = six.BytesIO(six.b("123")) resp.status_code = 200 with mock.patch( 'requests.get', mock.Mock(side_effect=lambda k, *args, **kwargs: resp)): new_f_obj = utils.File('http://127.0.0.1/').open() self.assertTrue(hasattr(new_f_obj, 'read'))
def test_file_object_url_fails(self): resp = requests.Response() resp.status_code = 400 resp.raw = six.BytesIO(six.b("123")) with mock.patch( 'requests.get', mock.Mock(side_effect=lambda k, *args, **kwargs: resp)): f = utils.File("http://127.0.0.1") self.assertRaises(ValueError, f.open)
def test_package_import_no_categories(self, from_file): with tempfile.NamedTemporaryFile() as f: RESULT_PACKAGE = f.name pkg = make_pkg({'FullName': RESULT_PACKAGE}) from_file.return_value = mc_utils.Package(mc_utils.File(pkg)) arglist = [RESULT_PACKAGE] parsed_args = self.check_parser(self.cmd, arglist, []) self.cmd.take_action(parsed_args) self.package_mock.create.assert_called_once_with( {'is_public': False}, {RESULT_PACKAGE: mock.ANY}, )
def test_package_import_url(self, rm, from_file): filename = "http://127.0.0.1/test_package.zip" pkg = make_pkg({'FullName': 'test_package'}) from_file.return_value = mc_utils.Package(mc_utils.File(pkg)) rm.get(filename, body=make_pkg({'FullName': 'test_package'})) arglist = [filename] parsed_args = self.check_parser(self.cmd, arglist, []) self.cmd.take_action(parsed_args) self.package_mock.create.assert_called_once_with( {'is_public': False}, {'test_package': mock.ANY}, )
def test_package_import(self, from_file): with tempfile.NamedTemporaryFile() as f: RESULT_PACKAGE = f.name categories = ['Cat1', 'Cat2 with space'] pkg = make_pkg({'FullName': RESULT_PACKAGE}) from_file.return_value = mc_utils.Package(mc_utils.File(pkg)) arglist = [RESULT_PACKAGE, '--categories', categories, '--is-public'] parsed_args = self.check_parser(self.cmd, arglist, []) self.cmd.take_action(parsed_args) self.package_mock.create.assert_called_once_with({ 'categories': [categories], 'is_public': True }, {RESULT_PACKAGE: mock.ANY},)
def test_package_import_url(self, rm, from_file): args = TestArgs() args.filename = ["http://127.0.0.1/test_package.zip"] args.categories = None args.is_public = False pkg = make_pkg({'FullName': 'test_package'}) from_file.return_value = utils.Package(utils.File(pkg)) rm.get(args.filename[0], body=make_pkg({'FullName': 'test_package'})) v1_shell.do_package_import(self.client, args) self.client.packages.create.assert_called_once_with( {'is_public': False}, {'test_package': mock.ANY}, )
def test_package_import(self, from_file): args = TestArgs() with tempfile.NamedTemporaryFile() as f: RESULT_PACKAGE = f.name args.filename = [RESULT_PACKAGE] args.categories = ['Cat1', 'Cat2 with space'] args.is_public = True pkg = make_pkg({'FullName': RESULT_PACKAGE}) from_file.return_value = utils.Package(utils.File(pkg)) v1_shell.do_package_import(self.client, args) self.client.packages.create.assert_called_once_with({ 'categories': ['Cat1', 'Cat2 with space'], 'is_public': True }, {RESULT_PACKAGE: mock.ANY},)
def _test_conflict(self, packages, from_file, raw_input_mock, input_action, exists_action=''): packages.create = mock.MagicMock( side_effect=[common_exceptions.HTTPConflict("Conflict"), None]) packages.filter.return_value = [mock.Mock(id='test_id')] raw_input_mock.return_value = input_action args = TestArgs() args.exists_action = exists_action with tempfile.NamedTemporaryFile() as f: args.filename = [f.name] pkg = make_pkg({'FullName': f.name}) from_file.return_value = utils.Package(utils.File(pkg)) v1_shell.do_package_import(self.client, args) return f.name
def test_package_import_by_name(self, rm, from_file): filename = "io.test.apps.test_application" murano_repo_url = "http://127.0.0.1" pkg = make_pkg({'FullName': filename}) from_file.return_value = mc_utils.Package(mc_utils.File(pkg)) rm.get(murano_repo_url + '/apps/' + filename + '.zip', body=make_pkg({'FullName': 'first_app'})) arglist = [filename, '--murano-repo-url', murano_repo_url] parsed_args = self.check_parser(self.cmd, arglist, []) self.cmd.take_action(parsed_args) self.assertTrue(self.package_mock.create.called) self.package_mock.create.assert_called_once_with( {'is_public': False}, {filename: mock.ANY}, )
def _test_conflict(self, packages, from_file, raw_input_mock, input_action, exists_action=''): packages.create = mock.MagicMock( side_effect=[common_exceptions.HTTPConflict("Conflict"), None]) packages.filter.return_value = [mock.Mock(id='test_id')] raw_input_mock.return_value = input_action with tempfile.NamedTemporaryFile() as f: pkg = make_pkg({'FullName': f.name}) from_file.return_value = mc_utils.Package(mc_utils.File(pkg)) if exists_action: arglist = [f.name, '--exists-action', exists_action] else: arglist = [f.name] parsed_args = self.check_parser(self.cmd, arglist, []) self.cmd.take_action(parsed_args) return f.name
def test_package_import_by_name(self, rm, from_file): args = TestArgs() args.filename = ["io.test.apps.test_application"] args.categories = None args.is_public = False args.murano_repo_url = "http://127.0.0.1" pkg = make_pkg({'FullName': args.filename[0]}) from_file.return_value = utils.Package(utils.File(pkg)) rm.get(args.murano_repo_url + '/apps/' + args.filename[0] + '.zip', body=make_pkg({'FullName': 'first_app'})) v1_shell.do_package_import(self.client, args) self.assertTrue(self.client.packages.create.called) self.client.packages.create.assert_called_once_with( {'is_public': False}, {args.filename[0]: mock.ANY}, )
def test_file_object_file_fails(self): f_obj = utils.File('') self.assertRaises(ValueError, f_obj.open)
def side_effect(name): if 'first_app' in name: return mc_utils.Package(mc_utils.File(pkg1)) if 'second_app' in name: return mc_utils.Package(mc_utils.File(pkg2))