<publishers/>
<buildWrappers/>
</project>""".strip()
+
+
+SCM_GIT_JOB = """
+<?xml version='1.0' encoding='UTF-8'?>
+<project>
+ <actions/>
+ <description></description>
+ <properties/>
+ <scm class="hudson.plugins.git.GitSCM" plugin="git@1.4.0">
+ <configVersion>2</configVersion>
+ <userRemoteConfigs>
+ <hudson.plugins.git.UserRemoteConfig>
+ <name></name>
+ <refspec></refspec>
+ <url>https://github.com/salimfadhley/jenkinsapi.git</url>
+ </hudson.plugins.git.UserRemoteConfig>
+ </userRemoteConfigs>
+ <branches>
+ <hudson.plugins.git.BranchSpec>
+ <name>**</name>
+ </hudson.plugins.git.BranchSpec>
+ </branches>
+ <disableSubmodules>false</disableSubmodules>
+ <recursiveSubmodules>false</recursiveSubmodules>
+ <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
+ <authorOrCommitter>false</authorOrCommitter>
+ <clean>false</clean>
+ <wipeOutWorkspace>false</wipeOutWorkspace>
+ <pruneBranches>false</pruneBranches>
+ <remotePoll>false</remotePoll>
+ <ignoreNotifyCommit>false</ignoreNotifyCommit>
+ <useShallowClone>false</useShallowClone>
+ <buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/>
+ <gitTool>Default</gitTool>
+ <submoduleCfg class="list"/>
+ <relativeTargetDir></relativeTargetDir>
+ <reference></reference>
+ <excludedRegions></excludedRegions>
+ <excludedUsers></excludedUsers>
+ <gitConfigName></gitConfigName>
+ <gitConfigEmail></gitConfigEmail>
+ <skipTag>false</skipTag>
+ <includedRegions></includedRegions>
+ <scmName></scmName>
+ </scm>
+ <canRoam>true</canRoam>
+ <disabled>false</disabled>
+ <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
+ <builders>
+ <hudson.tasks.Shell>
+ <command>ping -c 10 localhost</command>
+ </hudson.tasks.Shell>
+ </builders>
+ <publishers/>
+ <buildWrappers/>
+</project>
+"""
--- /dev/null
+'''
+System tests for `jenkinsapi.jenkins` module.
+'''
+import unittest
+from jenkinsapi.invocation import Invocation
+from jenkinsapi_tests.systests import state
+from jenkinsapi_tests.systests.base import BaseSystemTest
+from jenkinsapi_tests.test_utils.random_strings import random_string
+from jenkinsapi_tests.systests.job_configs import SCM_GIT_JOB
+
+# Maybe have a base class for all SCM test activites?
+class TestSCMGIT(BaseSystemTest):
+ # Maybe it makes sense to move plugin dependencies outside the code.
+ # Have a config to dependencies mapping from the launcher can use to install plugins.
+ PLUGIN_DEPENDENCIES = ["http://updates.jenkins-ci.org/latest/git.hpi",
+ "http://updates.jenkins-ci.org/latest/git-client.hpi"]
+
+ def test_get_revision(self):
+ job_name = 'create_%s' % random_string()
+ state['launcher'].install_plugin(self.PLUGIN_DEPENDENCIES)
+ job = self.jenkins.create_job(job_name, SCM_GIT_JOB)
+ ii = job.invoke()
+ ii.block(until='completed')
+ self.assertFalse(ii.is_running())
+ bn = ii.get_build_number()
+ b = job.get_build(bn)
+ self.assertIsInstance(b.get_revision(), basestring)
+
+if __name__ == '__main__':
+ unittest.main()
+