summaryrefslogtreecommitdiffstats
path: root/ipalib/tests/test_public.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib/tests/test_public.py')
-rw-r--r--ipalib/tests/test_public.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/ipalib/tests/test_public.py b/ipalib/tests/test_public.py
index ac1ae818..52fb9336 100644
--- a/ipalib/tests/test_public.py
+++ b/ipalib/tests/test_public.py
@@ -690,3 +690,36 @@ class test_Property(ClassChecker):
assert isinstance(opt, public.Option)
assert opt.name == 'givenname'
assert opt.doc == 'User first name'
+
+
+class test_Application(ClassChecker):
+ """
+ Tests the `public.Application` class.
+ """
+ _cls = public.Application
+
+ def test_class(self):
+ assert self.cls.__bases__ == (public.Command,)
+ assert type(self.cls.application) is property
+
+ def test_application(self):
+ """
+ Tests the `public.Application.application` property.
+ """
+ assert 'application' in self.cls.__public__ # Public
+ app = 'The external application'
+ class example(self.cls):
+ 'A subclass'
+ for o in (self.cls(), example()):
+ assert o.application is None
+ e = raises(TypeError, setattr, o, 'application', None)
+ assert str(e) == (
+ '%s.application cannot be None' % o.__class__.__name__
+ )
+ o.application = app
+ assert o.application is app
+ e = raises(AttributeError, setattr, o, 'application', app)
+ assert str(e) == (
+ '%s.application can only be set once' % o.__class__.__name__
+ )
+ assert o.application is app