def test_parse_payload(self): from greg.builder.jenkins import BridgeBuilderJenkins testee = BridgeBuilderJenkins({ 'url':'http://wow.com', 'username': '******', 'password': '******', 'incoming_token': 'hi', }) querystring = { 'token': 'hi', } body ='{"name":"cookbook-test","url":"job/cookbook-test/","build":{"full_url":"http://build1.use.dynamicyield.com:8080/job/cookbook-test/3885/","number":3885,"phase":"COMPLETED","status":"UNSTABLE","url":"job/cookbook-test/3885/","scm":{"url":"[email protected]:dy-devops/chef-dy-spark.git","branch":"origin/master","commit":"5fd7ed5ea61ff8dab124d17c1c7dd23917f26ed3"},"parameters":{"SOURCE":"[email protected]:dy-devops/chef-dy-spark.git","COMMIT":"master","REPORT":"true","CONTEXT":"test"},"log":"","artifacts":{}}}' res=testee.parse_payload(body,{},querystring) self.assertEqual(res['name'], 'cookbook-test') self.assertEqual(res['done'], True) self.assertEqual(res['good'], True) self.assertEqual(res['report'], True) self.assertEqual(res['pr'], None) self.assertEqual(res['context'], 'test') self.assertEqual(res['source']['provider_url'], '[email protected]:') self.assertEqual(res['source']['organization'], 'dy-devops') self.assertEqual(res['source']['name'], 'chef-dy-spark') self.assertEqual(res['source']['commit'], 'master') self.assertEqual(res['target'], None) self.assertEqual(res['url'], 'http://build1.use.dynamicyield.com:8080/job/cookbook-test/3885/')
def test_ensure_notification_endpoint_notouch(self): from greg.builder.jenkins import BridgeBuilderJenkins import xml.etree.ElementTree as ET testee = BridgeBuilderJenkins( {"url": "http://wow.com", "username": "******", "password": "******", "incoming_token": "hi"} ) xml_config = """ <project><properties> <com.tikal.hudson.plugins.notification.HudsonNotificationProperty plugin="[email protected]"> <endpoints> <com.tikal.hudson.plugins.notification.Endpoint> <protocol>HTTP</protocol> <format>JSON</format> <url>http://good-url.com/build?builder=jenkins&token=hi</url> <event>completed</event> <timeout>30000</timeout> <loglines>0</loglines> </com.tikal.hudson.plugins.notification.Endpoint> <com.tikal.hudson.plugins.notification.Endpoint> <protocol>HTTP</protocol> <format>JSON</format> <url>http://requestb.in/15rhdx23</url> <event>all</event> <timeout>30000</timeout> <loglines>0</loglines> </com.tikal.hudson.plugins.notification.Endpoint> </endpoints> </com.tikal.hudson.plugins.notification.HudsonNotificationProperty> </properties></project> """ config_before = ET.fromstring(xml_config) config_after = ET.fromstring(xml_config) testee.ensure_notification_endpoint("http://good-url.com/build?builder=jenkins&token=hi", config_after) self.assertXmlEqual(config_before, config_after)
def test_parse_repo(self): from greg.builder.jenkins import BridgeBuilderJenkins testee = BridgeBuilderJenkins( {"url": "http://wow.com", "username": "******", "password": "******", "incoming_token": "hi"} ) res = testee.parse_repo("[email protected]:blu/bli.git") self.assertEqual(res[0], "[email protected]:") self.assertEqual(res[1], "blu") self.assertEqual(res[2], "bli")
def test_parse_repo(self): from greg.builder.jenkins import BridgeBuilderJenkins testee = BridgeBuilderJenkins({ 'url':'http://wow.com', 'username': '******', 'password': '******', 'incoming_token': 'hi', }) res=testee.parse_repo('[email protected]:blu/bli.git') self.assertEqual(res[0],'[email protected]:') self.assertEqual(res[1],'blu') self.assertEqual(res[2],'bli')
def test_parse_payload(self): from greg.builder.jenkins import BridgeBuilderJenkins testee = BridgeBuilderJenkins( {"url": "http://wow.com", "username": "******", "password": "******", "incoming_token": "hi"} ) querystring = {"token": "hi"} body = '{"name":"cookbook-test","url":"job/cookbook-test/","build":{"full_url":"http://build1.use.dynamicyield.com:8080/job/cookbook-test/3885/","number":3885,"phase":"COMPLETED","status":"UNSTABLE","url":"job/cookbook-test/3885/","scm":{"url":"[email protected]:dy-devops/chef-dy-spark.git","branch":"origin/master","commit":"5fd7ed5ea61ff8dab124d17c1c7dd23917f26ed3"},"parameters":{"SOURCE":"[email protected]:dy-devops/chef-dy-spark.git","COMMIT":"master","REPORT":"true","CONTEXT":"test"},"log":"","artifacts":{}}}' res = testee.parse_payload(body, {}, querystring) self.assertEqual(res["name"], "cookbook-test") self.assertEqual(res["done"], True) self.assertEqual(res["good"], True) self.assertEqual(res["report"], True) self.assertEqual(res["pr"], None) self.assertEqual(res["context"], "test") self.assertEqual(res["source"]["provider_url"], "[email protected]:") self.assertEqual(res["source"]["organization"], "dy-devops") self.assertEqual(res["source"]["name"], "chef-dy-spark") self.assertEqual(res["source"]["commit"], "master") self.assertEqual(res["target"], None) self.assertEqual(res["url"], "http://build1.use.dynamicyield.com:8080/job/cookbook-test/3885/")
def test_ensure_notification_endpoint_notouch(self): from greg.builder.jenkins import BridgeBuilderJenkins import xml.etree.ElementTree as ET testee = BridgeBuilderJenkins({ 'url':'http://wow.com', 'username': '******', 'password': '******', 'incoming_token': 'hi', }) xml_config = ''' <project><properties> <com.tikal.hudson.plugins.notification.HudsonNotificationProperty plugin="[email protected]"> <endpoints> <com.tikal.hudson.plugins.notification.Endpoint> <protocol>HTTP</protocol> <format>JSON</format> <url>http://good-url.com/build?builder=jenkins&token=hi</url> <event>completed</event> <timeout>30000</timeout> <loglines>0</loglines> </com.tikal.hudson.plugins.notification.Endpoint> <com.tikal.hudson.plugins.notification.Endpoint> <protocol>HTTP</protocol> <format>JSON</format> <url>http://requestb.in/15rhdx23</url> <event>all</event> <timeout>30000</timeout> <loglines>0</loglines> </com.tikal.hudson.plugins.notification.Endpoint> </endpoints> </com.tikal.hudson.plugins.notification.HudsonNotificationProperty> </properties></project> ''' config_before = ET.fromstring(xml_config) config_after = ET.fromstring(xml_config) testee.ensure_notification_endpoint('http://good-url.com/build?builder=jenkins&token=hi',config_after) self.assertXmlEqual(config_before, config_after)