Add OMF Classes using XMPP and Protocol 5.4
[nepi.git] / test / execution / resource.py
1 #!/usr/bin/env python
2 from neco.execution.resource import Resource, ResourceFactory, clsinit
3 from neco.execution.attribute import Attribute
4
5 import unittest
6
7 @clsinit
8 class MyResource(Resource):
9     _rtype = "MyResource"
10
11     @classmethod
12     def _register_attributes(cls):
13         cool_attr = Attribute("my_attr", "is a really nice attribute!")
14         cls._register_attribute(cool_attr)
15
16     def __init__(self, ec, guid):
17         super(MyResource, self).__init__(ec, guid)
18
19 @clsinit
20 class AnotherResource(Resource):
21     _rtype = "AnotherResource"
22
23     def __init__(self, ec, guid):
24         super(AnotherResource, self).__init__(ec, guid)
25      
26 class EC(object):
27     pass
28
29
30 class ResourceTestCase(unittest.TestCase):
31     def test_add_resource_factory(self):
32         ResourceFactory.register_type(MyResource)
33         ResourceFactory.register_type(AnotherResource)
34
35         self.assertEquals(MyResource.rtype(), "MyResource")
36         self.assertEquals(len(MyResource._attributes), 1)
37
38         self.assertEquals(Resource.rtype(), "Resource")
39         self.assertEquals(len(Resource._attributes), 0)
40
41         self.assertEquals(AnotherResource.rtype(), "AnotherResource")
42         self.assertEquals(len(AnotherResource._attributes), 0)
43
44         #self.assertEquals(OmfNode.rtype(), "OmfNode")
45         #self.assertEquals(len(OmfNode._attributes), 0)
46
47         self.assertEquals(len(ResourceFactory.resource_types()), 2)
48
49 if __name__ == '__main__':
50     unittest.main()
51