コード例 #1
0
    def test_attributes(self):
        '''
        <root>
          <alpha four="4" one="1" three="3" two="2">Alpha</alpha>
          <bravo>
            <charlie three="3"/>
          </bravo>
        </root>
        '''
        factory = XmlFactory('root')
        factory['alpha'] = 'Alpha'
        factory['alpha@one'] = '1'
        factory['alpha@two'] = '2'
        factory['alpha@three'] = '3'
        factory['alpha@four'] = '4'
        factory['bravo/charlie@three'] = '3'

        assert (factory.get_contents() == dedent(self.test_attributes.__doc__))
        # We're ignoring attributes and empty tags for now.
        assert factory.as_dict() == {
            'alpha': {
                'one': '1',
                'two': '2',
                'three': '3',
                'four': '4'
            },
            'bravo': {
                'charlie': {
                    'three': '3'
                }
            }
        }
        assert factory.as_json() == \
            '{"alpha": {"four": "4", "one": "1", "three": "3", "two": "2"}, "bravo": {"charlie": {"three": "3"}}}'
コード例 #2
0
    def test_simple(self):
        '''
        <user>
          <name>Alpha</name>
          <login>Bravo</login>
          <location>
            <city>Charlie</city>
          </location>
        </user>
        '''
        factory = XmlFactory('user')
        factory['name'] = 'Alpha'
        factory['login'] = '******'
        factory['location/city'] = 'Charlie'

        assert (factory.get_contents() == dedent(self.test_simple.__doc__))
        assert factory.as_dict() == {
            "name": "Alpha",
            "login": "******",
            "location": {
                "city": "Charlie"
            }
        }
        assert factory.as_json(
        ) == '{"name": "Alpha", "login": "******", "location": {"city": "Charlie"}}'
コード例 #3
0
    def test_trigger_class(self):
        '''
        <root>
          <triggers class="vector"/>
        </root>
        '''
        # Simulating the use for HudsonJobGenerator._CreateTriggers
        factory = XmlFactory('root')
        triggers = factory['triggers']
        triggers['@class'] = 'vector'

        assert (factory.get_contents() == dedent(
            self.test_trigger_class.__doc__))
コード例 #4
0
    def test_repeating_tags(self):
        '''
        <root>
          <elements>
            <name>Alpha</name>
            <name>Bravo</name>
            <name>Charlie</name>
          </elements>
          <components>
            <component>
              <name>Alpha</name>
            </component>
            <component>
              <name>Bravo</name>
            </component>
            <component>
              <name>Charlie</name>
            </component>
          </components>
        </root>
        '''
        factory = XmlFactory('root')
        factory['elements/name'] = 'Alpha'
        factory['elements/name+'] = 'Bravo'
        factory['elements/name+'] = 'Charlie'

        factory['components/component+/name'] = 'Alpha'
        factory['components/component+/name'] = 'Bravo'
        factory['components/component+/name'] = 'Charlie'

        assert (factory.get_contents() == dedent(
            self.test_repeating_tags.__doc__))
        assert factory.as_dict() == {
            "elements": {
                "name": ["Alpha", "Bravo", "Charlie"]
            },
            "components": {
                "component": [{
                    "name": "Alpha"
                }, {
                    "name": "Bravo"
                }, {
                    "name": "Charlie"
                }]
            }
        }
        assert factory.as_json() == '{"elements": {"name": ["Alpha", "Bravo", "Charlie"]}, "components": '\
            '{"component": [{"name": "Alpha"}, {"name": "Bravo"}, {"name": "Charlie"}]}}'
コード例 #5
0
    def test_simplest(self):
        '''
        <?xml version="1.0" ?>
        <user>
          <name>Alpha</name>
          <login>Bravo</login>
        </user>
        '''
        factory = XmlFactory('user')
        factory['name'] = 'Alpha'
        factory['login'] = '******'

        assert (factory.get_contents(xml_header=True) == dedent(
            self.test_simplest.__doc__))
        assert factory.as_dict() == {"name": "Alpha", "login": "******"}
        assert factory.as_json() == '{"name": "Alpha", "login": "******"}'
コード例 #6
0
    def test_hudson_job(self):
        '''
        <project>
          <actions/>
          <description/>
          <logRotator>
            <daysToKeep>7</daysToKeep>
            <numToKeep>7</numToKeep>
          </logRotator>
          <keepDependencies>false</keepDependencies>
          <properties/>
          <scm class="hudson.scm.SubversionSCM">
            <useUpdate>true</useUpdate>
            <excludedRegions/>
            <excludedUsers/>
            <excludedRevprop/>
          </scm>
          <assignedNode>KATARN</assignedNode>
          <canRoam>false</canRoam>
          <disabled>false</disabled>
          <blockBuildWhenUpstreamBuilding>true</blockBuildWhenUpstreamBuilding>
          <concurrentBuild>false</concurrentBuild>
          <buildWrappers/>
          <customWorkspace>WORKSPACE</customWorkspace>
        </project>
        '''
        factory = XmlFactory('project')
        factory['actions']
        factory['description']
        factory['logRotator/daysToKeep'] = '7'
        factory['logRotator/numToKeep'] = '7'
        factory['keepDependencies'] = 'false'
        factory['properties']
        factory['scm@class'] = 'hudson.scm.SubversionSCM'
        factory['scm/useUpdate'] = 'true'
        factory['scm/excludedRegions']
        factory['scm/excludedUsers']
        factory['scm/excludedRevprop']
        factory['assignedNode'] = 'KATARN'
        factory['canRoam'] = 'false'
        factory['disabled'] = 'false'
        factory['blockBuildWhenUpstreamBuilding'] = 'true'
        factory['concurrentBuild'] = 'false'
        factory['buildWrappers']
        factory['customWorkspace'] = 'WORKSPACE'

        assert (factory.get_contents() == dedent(self.test_hudson_job.__doc__))
コード例 #7
0
    def test_pretty_xml_to_stream(self, datadir):
        '''
        <root>
          <alpha enabled="true">
            <bravo>
              <charlie/>
            </bravo>
            <bravo.one/>
            <delta>XXX</delta>
          </alpha>
        </root>
        '''
        iss = open(datadir['input.xml'], 'r')
        oss = StringIO()

        WritePrettyXML(iss, oss)
        assert oss.getvalue() == dedent(self.test_pretty_xml_to_stream.__doc__)