[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Freeipa-devel] [PATCH] jderose 019 remove some cruft



On Tue, 2009-10-13 at 22:45 -0600, Jason Gerard DeRose wrote:
> This removes the util.add_global_options() function and the
> frontend.Application class, neither of which are now needed.

And *this* actually attaches the patch.  ;)
>From c88f87dc36aed3b5e13450c0c3361c3f3469c2a5 Mon Sep 17 00:00:00 2001
From: Jason Gerard DeRose <jderose redhat com>
Date: Tue, 13 Oct 2009 22:23:19 -0600
Subject: [PATCH] Removed util.add_global_options() and frontend.Application

---
 ipalib/__init__.py                 |    8 +-----
 ipalib/cli.py                      |    4 +-
 ipalib/frontend.py                 |   41 ------------------------------------
 ipalib/util.py                     |   23 --------------------
 tests/test_ipalib/test_frontend.py |   37 --------------------------------
 5 files changed, 4 insertions(+), 109 deletions(-)

diff --git a/ipalib/__init__.py b/ipalib/__init__.py
index 3b177da..d263d98 100644
--- a/ipalib/__init__.py
+++ b/ipalib/__init__.py
@@ -866,7 +866,7 @@ freeIPA.org:
 import os
 import plugable
 from backend import Backend
-from frontend import Command, LocalOrRemote, Application
+from frontend import Command, LocalOrRemote
 from frontend import Object, Method, Property
 from crud import Create, Retrieve, Update, Delete, Search
 from parameters import DefaultFrom, Bool, Flag, Int, Float, Bytes, Str, Password,List
@@ -900,13 +900,9 @@ def create_api(mode='dummy'):
 
         - `frontend.Property`
 
-        - `frontend.Application`
-
         - `backend.Backend`
     """
-    api = plugable.API(
-        Command, Object, Method, Property, Application, Backend
-    )
+    api = plugable.API(Command, Object, Method, Property, Backend)
     if mode is not None:
         api.env.mode = mode
     assert mode != 'production'
diff --git a/ipalib/cli.py b/ipalib/cli.py
index e470001..85282a0 100644
--- a/ipalib/cli.py
+++ b/ipalib/cli.py
@@ -612,7 +612,7 @@ class help(frontend.Command):
             print '  %s  %s' % (to_cli(c.name).ljust(mcl), c.doc)
 
 
-class console(frontend.Application):
+class console(frontend.Command):
     """Start the IPA interactive Python console."""
 
     def run(self):
@@ -622,7 +622,7 @@ class console(frontend.Application):
         )
 
 
-class show_api(frontend.Application):
+class show_api(frontend.Command):
     'Show attributes on dynamic API object'
 
     takes_args = ('namespaces*',)
diff --git a/ipalib/frontend.py b/ipalib/frontend.py
index 622c427..b13ffed 100644
--- a/ipalib/frontend.py
+++ b/ipalib/frontend.py
@@ -1015,44 +1015,3 @@ class Property(Attribute):
                 attr = getattr(self, name)
                 if is_rule(attr):
                     yield attr
-
-
-class Application(Command):
-    """
-    Base class for commands register by an external application.
-
-    Special commands that only apply to a particular application built atop
-    `ipalib` should subclass from ``Application``.
-
-    Because ``Application`` subclasses from `Command`, plugins that subclass
-    from ``Application`` with be available in both the ``api.Command`` and
-    ``api.Application`` namespaces.
-    """
-
-    __public__ = frozenset((
-        'application',
-        'set_application'
-    )).union(Command.__public__)
-    __application = None
-
-    def __get_application(self):
-        """
-        Returns external ``application`` object.
-        """
-        return self.__application
-    application = property(__get_application)
-
-    def set_application(self, application):
-        """
-        Sets the external application object to ``application``.
-        """
-        if self.__application is not None:
-            raise AttributeError(
-                '%s.application can only be set once' % self.name
-            )
-        if application is None:
-            raise TypeError(
-                '%s.application cannot be None' % self.name
-            )
-        object.__setattr__(self, '_Application__application', application)
-        assert self.application is application
diff --git a/ipalib/util.py b/ipalib/util.py
index 5ea13dc..76be9a6 100644
--- a/ipalib/util.py
+++ b/ipalib/util.py
@@ -23,7 +23,6 @@ Various utility functions.
 
 import os
 import imp
-import optparse
 import logging
 import time
 import krbV
@@ -95,28 +94,6 @@ def import_plugins_subpackage(name):
         __import__(full_name)
 
 
-def add_global_options(parser=None):
-    """
-    Add global options to an optparse.OptionParser instance.
-    """
-    if parser is None:
-        parser = optparse.OptionParser()
-        parser.disable_interspersed_args()
-    parser.add_option('-e', dest='env', metavar='KEY=VAL', action='append',
-        help='Set environment variable KEY to VAL',
-    )
-    parser.add_option('-c', dest='conf', metavar='FILE',
-        help='Load configuration from FILE',
-    )
-    parser.add_option('-d', '--debug', action='store_true',
-        help='Produce full debuging output',
-    )
-    parser.add_option('-v', '--verbose', action='store_true',
-        help='Produce more verbose output',
-    )
-    return parser
-
-
 class LogFormatter(logging.Formatter):
     """
     Log formatter that uses UTC for all timestamps.
diff --git a/tests/test_ipalib/test_frontend.py b/tests/test_ipalib/test_frontend.py
index 53843ce..71d9024 100644
--- a/tests/test_ipalib/test_frontend.py
+++ b/tests/test_ipalib/test_frontend.py
@@ -893,40 +893,3 @@ class test_Property(ClassChecker):
         assert isinstance(param, parameters.Str)
         assert param.name == 'givenname'
         assert param.doc == 'User first name'
-
-
-class test_Application(ClassChecker):
-    """
-    Test the `ipalib.frontend.Application` class.
-    """
-    _cls = frontend.Application
-
-    def test_class(self):
-        """
-        Test the `ipalib.frontend.Application` class.
-        """
-        assert self.cls.__bases__ == (frontend.Command,)
-        assert type(self.cls.application) is property
-
-    def test_application(self):
-        """
-        Test the `ipalib.frontend.Application.application` property.
-        """
-        assert 'application' in self.cls.__public__ # Public
-        assert 'set_application' in self.cls.__public__ # Public
-        app = 'The external application'
-        class example(self.cls):
-            'A subclass'
-        for o in (self.cls(), example()):
-            assert read_only(o, 'application') is None
-            e = raises(TypeError, o.set_application, None)
-            assert str(e) == (
-                '%s.application cannot be None' % o.__class__.__name__
-            )
-            o.set_application(app)
-            assert read_only(o, 'application') is app
-            e = raises(AttributeError, o.set_application, app)
-            assert str(e) == (
-                '%s.application can only be set once' % o.__class__.__name__
-            )
-            assert read_only(o, 'application') is app
-- 
1.6.3.3


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]