Add basic Build class
This commit is contained in:
parent
5cacfc009e
commit
2332ed605c
|
@ -0,0 +1,66 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
|
||||
try:
|
||||
from xml.etree import cElementTree as ElementTree
|
||||
except ImportError:
|
||||
from xml.etree import ElementTree
|
||||
|
||||
|
||||
class Build(object):
|
||||
result = None
|
||||
builtOn = None
|
||||
keepLog = None
|
||||
number = None
|
||||
duration = None
|
||||
workspace = None
|
||||
hudsonVersion = None
|
||||
charset = None
|
||||
|
||||
def _handle_result(self, e):
|
||||
module = sys.modules.get(__name__)
|
||||
self.result = getattr(module, e.text, UNKNOWN)
|
||||
|
||||
def _handle_builtOn(self, e):
|
||||
self.builtOn = e.text
|
||||
|
||||
def _handle_keepLog(self, e):
|
||||
self.keepLog = e.text == 'true'
|
||||
|
||||
def _handle_workspace(self, e):
|
||||
self.workspace = e.text
|
||||
|
||||
def _handle_number(self, e):
|
||||
self.number = int(e.text)
|
||||
|
||||
def _handle_charset(self, e):
|
||||
self.charset = e.text
|
||||
|
||||
def _handle_duration(self, e):
|
||||
self.duration = int(e.text)
|
||||
|
||||
def _handle_hudsonVersion(self, e):
|
||||
self.hudsonVersion = e.text
|
||||
|
||||
@classmethod
|
||||
def from_xml(cls, xml):
|
||||
instance = cls()
|
||||
elem = ElementTree.fromstring(xml)
|
||||
for node in elem:
|
||||
method = '_handle_%s' % node.tag
|
||||
if hasattr(instance, method):
|
||||
getattr(instance, method)(node)
|
||||
continue
|
||||
return instance
|
||||
|
||||
|
||||
def from_string(xml):
|
||||
return Build.from_xml(xml)
|
||||
|
||||
SUCCESS = 1
|
||||
FAILED = 2
|
||||
UNSTABLE = 3
|
||||
ABORTED = 4
|
||||
UNKNOWN = 5
|
||||
|
|
@ -0,0 +1,310 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import unittest
|
||||
|
||||
from hudson import build
|
||||
|
||||
class BasicBuildTest(unittest.TestCase):
|
||||
buildxml = '''<?xml version='1.0' encoding='UTF-8'?>
|
||||
<build>
|
||||
<actions>
|
||||
<hudson.model.CauseAction>
|
||||
<causes>
|
||||
<hudson.model.Cause_-UserCause>
|
||||
<authenticationName>anonymous</authenticationName>
|
||||
</hudson.model.Cause_-UserCause>
|
||||
</causes>
|
||||
</hudson.model.CauseAction>
|
||||
<hudson.plugins.git.util.BuildData>
|
||||
<buildsByBranchName>
|
||||
<entry>
|
||||
<string>origin/next</string>
|
||||
<hudson.plugins.git.util.Build>
|
||||
<revision>
|
||||
<sha1>
|
||||
<byte-array>QnenrfUeJ2+HD+cl2B8VlS3QAlU=</byte-array>
|
||||
</sha1>
|
||||
<branches class="list">
|
||||
<hudson.plugins.git.Branch>
|
||||
<sha1 reference="../../../sha1"/>
|
||||
<name>origin/next</name>
|
||||
</hudson.plugins.git.Branch>
|
||||
</branches>
|
||||
</revision>
|
||||
<hudsonBuildNumber>10</hudsonBuildNumber>
|
||||
</hudson.plugins.git.util.Build>
|
||||
</entry>
|
||||
</buildsByBranchName>
|
||||
<lastBuild reference="../buildsByBranchName/entry/hudson.plugins.git.util.Build"/>
|
||||
</hudson.plugins.git.util.BuildData>
|
||||
<hudson.tasks.junit.TestResultAction>
|
||||
<owner class="build" reference="../../.."/>
|
||||
<failCount>0</failCount>
|
||||
<skipCount>0</skipCount>
|
||||
<totalCount>2123</totalCount>
|
||||
<testData/>
|
||||
<descriptions class="java.util.concurrent.ConcurrentHashMap" serialization="custom">
|
||||
<unserializable-parents/>
|
||||
<java.util.concurrent.ConcurrentHashMap>
|
||||
<default>
|
||||
<segmentMask>15</segmentMask>
|
||||
<segmentShift>28</segmentShift>
|
||||
<segments>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
<sync class="java.util.concurrent.locks.ReentrantLock$NonfairSync" serialization="custom">
|
||||
<java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<default>
|
||||
<state>0</state>
|
||||
</default>
|
||||
</java.util.concurrent.locks.AbstractQueuedSynchronizer>
|
||||
<java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
<default/>
|
||||
</java.util.concurrent.locks.ReentrantLock_-Sync>
|
||||
</sync>
|
||||
<loadFactor>0.75</loadFactor>
|
||||
</java.util.concurrent.ConcurrentHashMap_-Segment>
|
||||
</segments>
|
||||
</default>
|
||||
<null/>
|
||||
<null/>
|
||||
</java.util.concurrent.ConcurrentHashMap>
|
||||
</descriptions>
|
||||
</hudson.tasks.junit.TestResultAction>
|
||||
</actions>
|
||||
<number>10</number>
|
||||
<result>SUCCESS</result>
|
||||
<duration>88390</duration>
|
||||
<charset>UTF-8</charset>
|
||||
<keepLog>false</keepLog>
|
||||
<builtOn>openSUSE</builtOn>
|
||||
<workspace>/home/tyler/hudson/workspace/next</workspace>
|
||||
<hudsonVersion>1.339</hudsonVersion>
|
||||
<scm class="hudson.plugins.git.GitChangeLogParser"/>
|
||||
<culprits/>
|
||||
</build>'''
|
||||
|
||||
def setUp(self):
|
||||
self.b = build.from_string(self.buildxml)
|
||||
|
||||
def test_result(self):
|
||||
self.assertEquals(self.b.result, build.SUCCESS)
|
||||
|
||||
def test_builtOn(self):
|
||||
self.assertEquals(self.b.builtOn, 'openSUSE')
|
||||
|
||||
def test_keepLog(self):
|
||||
self.assertTrue(self.b.keepLog is False)
|
||||
|
||||
def test_workspace(self):
|
||||
self.assertEquals(self.b.workspace, '/home/tyler/hudson/workspace/next')
|
||||
|
||||
def test_hudsonVersion(self):
|
||||
self.assertEquals(self.b.hudsonVersion, '1.339')
|
||||
|
||||
def test_charset(self):
|
||||
self.assertEquals(self.b.charset, 'UTF-8')
|
||||
|
||||
def test_number(self):
|
||||
self.assertEquals(self.b.number, 10)
|
||||
|
||||
def test_duration(self):
|
||||
self.assertEquals(self.b.duration, 88390)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
Loading…
Reference in New Issue