Beispiel #1
0
class TestProperties(TestDatabaseFixture):
    def setUp(self):
        super(TestProperties, self).setUp()
        # Make some nodes
        self.root = Node(name=u'root', title=u'Root Node')
        if not hasattr(self, 'nodetype'):
            self.nodetype = Node
        self.node1 = self.nodetype(name=u'node1', title=u'Node 1', parent=self.root)
        self.node2 = self.nodetype(name=u'node2', title=u'Node 2', parent=self.root)
        self.node3 = self.nodetype(name=u'node3', title=u'Node 3', parent=self.node2)
        self.node4 = self.nodetype(name=u'node4', title=u'Node 4', parent=self.node3)
        db.session.add_all([self.root, self.node1, self.node2, self.node3, self.node4])
        db.session.commit()

    def test_property_dict(self):
        """Properties behave like a simple dictionary."""
        self.node1.properties[u'prop1'] = u'strvalue'
        # Properties should be retrievable without committing
        self.assertEqual(self.node1.properties.get(u'prop1'), u'strvalue')
        db.session.commit()
        # And retrievable after committing
        self.assertEqual(self.node1.properties.get(u'prop1'), u'strvalue')
        # Properties can be integers
        self.node1.properties[u'prop2'] = 123
        db.session.commit()
        self.assertEqual(self.node1.properties.get(u'prop2'), 123)

    def test_property_blank_default(self):
        self.node1.properties['test1'] = u''
        self.assertEqual(self.node1.properties['test1'], u'')
        self.assertEqual(self.node1.properties.get('test1'), u'')

    def test_inherited_properties(self):
        """getprop returns the value of a property from this or any parent node."""
        self.node2.properties[u'inherited_prop'] = u'inherited_val'
        # The property isn't available in the node's parent
        self.assertEqual(self.root.getprop(u'inherited_prop'), None)
        # The provided default value is returned
        self.assertEqual(self.root.getprop(u'inherited_prop', 1), 1)
        # The property is available in the node it was set on
        self.assertEqual(self.node2.getprop(u'inherited_prop'), u'inherited_val')
        # The property is not available in a sibling node
        self.assertEqual(self.node1.getprop(u'inherited_prop'), None)
        # The property is available from a child node any number of levels down
        self.assertEqual(self.node3.getprop(u'inherited_prop'), u'inherited_val')
        self.assertEqual(self.node4.getprop(u'inherited_prop'), u'inherited_val')
Beispiel #2
0
 def setUp(self):
     super(TestProperties, self).setUp()
     # Make some nodes
     self.root = Node(name=u'root', title=u'Root Node')
     if not hasattr(self, 'nodetype'):
         self.nodetype = Node
     self.node1 = self.nodetype(name=u'node1', title=u'Node 1', parent=self.root)
     self.node2 = self.nodetype(name=u'node2', title=u'Node 2', parent=self.root)
     self.node3 = self.nodetype(name=u'node3', title=u'Node 3', parent=self.node2)
     self.node4 = self.nodetype(name=u'node4', title=u'Node 4', parent=self.node3)
     db.session.add_all([self.root, self.node1, self.node2, self.node3, self.node4])
     db.session.commit()