def test_sequence_always_the_same(self):
        mo = ModelOpener(ManySimpleElements)
        # Testing that the output for the schema is *always the same*
        #NOTE:the following line is only meant for allowing the testcase to pass
        mo.get_schema_xml()
        out = mo.get_schema_xml()

        for x in xrange(1000):
            self.assertEquals(out, mo.get_schema_xml())
 def test_baz_xsd_order(self):
     expected_children_order = ['b' , 'a', 'z']
     baz = ModelOpener(Baz)
     for i in xrange(1000):
         baz_xsd = baz.get_schema_xml()
         baz_schema = lxml.etree.fromstring(baz_xsd)
         baz_xsd_children = baz_schema.xpath('/xs:schema/xs:complexType\
                                              [@name="Baz"]/xs:sequence/xs:element', 
                                              namespaces={'xs':'http://www.w3.org/2001/XMLSchema'})
         self.assertTrue(baz_xsd_children)
         self.assertEquals(expected_children_order, [child.get('name') for child in baz_xsd_children])
 def test_foo_xsd_order(self):
     expected_children_order = ['f' , 'o', 'o_', 'faz']
     foo = ModelOpener(Foo)
     for i in xrange(1000):
         foo_xsd = foo.get_schema_xml()
         foo_schema = lxml.etree.fromstring(foo_xsd)
         foo_xsd_children = foo_schema.xpath('/xs:schema/xs:complexType\
                                              [@name="Foo"]/xs:sequence/xs:element', 
                                              namespaces={'xs':'http://www.w3.org/2001/XMLSchema'})
         self.assertTrue(foo_xsd_children)
         self.assertEquals(expected_children_order, [child.get('name') for child in foo_xsd_children])
 def test_root_tag(self):
     mo = ModelOpener(Bar)
     xsd_doc = mo.get_schema_xml()
     schema = lxml.etree.fromstring(xsd_doc)
     root = schema.tag
     self.assertEquals(NS_SCHEMA, root)