Skip to content

Commit 0b1326a

Browse files
committed
+ test_get_scm_name_and_node
1 parent 4630756 commit 0b1326a

1 file changed

Lines changed: 20 additions & 6 deletions

File tree

tests/test_cli.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import unittest2 as unittest
22
import os
33
from argparse import Namespace
4+
from xml.etree import ElementTree
45

56
from pyfakefs import fake_filesystem_unittest
67
import mock
@@ -11,16 +12,13 @@
1112

1213
from jenkins_cli.cli import JenkinsCli, CliException, COLORS
1314

14-
GIT_SCM_XML = """
15-
<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<project>\n <actions/>\n <description></description>\n <keepDependencies>false</keepDependencies>\n <properties/>\n <scm class="hudson.plugins.git.GitSCM" plugin="git@2.4.2">\n <configVersion>2</configVersion>\n <userRemoteConfigs>\n <hudson.plugins.git.UserRemoteConfig>\n <url>https://github.com/LD250/jenkins-cli-python/</url>\n </hudson.plugins.git.UserRemoteConfig>\n </userRemoteConfigs>\n <branches>\n <hudson.plugins.git.BranchSpec>\n <name>cli-tests</name>\n </hudson.plugins.git.BranchSpec>\n </branches>\n <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>\n <submoduleCfg class="list"/>\n <extensions/>\n </scm>\n <canRoam>true</canRoam>\n <disabled>false</disabled>\n <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>\n <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>\n <triggers/>\n <concurrentBuild>false</concurrentBuild>\n <builders>\n <hudson.tasks.Shell>\n <command></command>\n </hudson.tasks.Shell>\n <jenkins.plugins.shiningpanda.builders.VirtualenvBuilder plugin="shiningpanda@0.22">\n <pythonName>System-CPython-2.7</pythonName>\n <home></home>\n <clear>true</clear>\n <systemSitePackages>false</systemSitePackages>\n <nature>shell</nature>\n <command>pip install -U pip\npip install -U setuptools\npip install -U wheel\npip install -r requirements.txt\npip list -o\n\nflake8 jenkins_cli\npython setup.py test</command>\n <ignoreExitCode>false</ignoreExitCode>\n </jenkins.plugins.shiningpanda.builders.VirtualenvBuilder>\n </builders>\n <publishers/>\n <buildWrappers/>\n</project>
15+
GIT_SCM_XML = """<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<project>\n <actions/>\n <description></description>\n <keepDependencies>false</keepDependencies>\n <properties/>\n <scm class="hudson.plugins.git.GitSCM" plugin="git@2.4.2">\n <configVersion>2</configVersion>\n <userRemoteConfigs>\n <hudson.plugins.git.UserRemoteConfig>\n <url>https://github.com/LD250/jenkins-cli-python/</url>\n </hudson.plugins.git.UserRemoteConfig>\n </userRemoteConfigs>\n <branches>\n <hudson.plugins.git.BranchSpec>\n <name>cli-tests</name>\n </hudson.plugins.git.BranchSpec>\n </branches>\n <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>\n <submoduleCfg class="list"/>\n <extensions/>\n </scm>\n <canRoam>true</canRoam>\n <disabled>false</disabled>\n <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>\n <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>\n <triggers/>\n <concurrentBuild>false</concurrentBuild>\n <builders>\n <hudson.tasks.Shell>\n <command></command>\n </hudson.tasks.Shell>\n <jenkins.plugins.shiningpanda.builders.VirtualenvBuilder plugin="shiningpanda@0.22">\n <pythonName>System-CPython-2.7</pythonName>\n <home></home>\n <clear>true</clear>\n <systemSitePackages>false</systemSitePackages>\n <nature>shell</nature>\n <command>pip install -U pip\npip install -U setuptools\npip install -U wheel\npip install -r requirements.txt\npip list -o\n\nflake8 jenkins_cli\npython setup.py test</command>\n <ignoreExitCode>false</ignoreExitCode>\n </jenkins.plugins.shiningpanda.builders.VirtualenvBuilder>\n </builders>\n <publishers/>\n <buildWrappers/>\n</project>
1616
"""
1717

18-
HG_SCM_XML = """
19-
<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<project>\n <actions/>\n <description></description>\n <keepDependencies>false</keepDependencies>\n <properties/>\n <scm class="hudson.plugins.mercurial.MercurialSCM" plugin="mercurial@1.54">\n <modules></modules>\n <revisionType>BRANCH</revisionType>\n <revision>v123</revision>\n <clean>false</clean>\n <credentialsId></credentialsId>\n <disableChangeLog>false</disableChangeLog>\n </scm>\n <canRoam>true</canRoam>\n <disabled>false</disabled>\n <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>\n <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>\n <triggers/>\n <concurrentBuild>false</concurrentBuild>\n <builders/>\n <publishers/>\n <buildWrappers/>\n</project>
18+
HG_SCM_XML = """<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<project>\n <actions/>\n <description></description>\n <keepDependencies>false</keepDependencies>\n <properties/>\n <scm class="hudson.plugins.mercurial.MercurialSCM" plugin="mercurial@1.54">\n <modules></modules>\n <revisionType>BRANCH</revisionType>\n <revision>v123</revision>\n <clean>false</clean>\n <credentialsId></credentialsId>\n <disableChangeLog>false</disableChangeLog>\n </scm>\n <canRoam>true</canRoam>\n <disabled>false</disabled>\n <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>\n <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>\n <triggers/>\n <concurrentBuild>false</concurrentBuild>\n <builders/>\n <publishers/>\n <buildWrappers/>\n</project>
2019
"""
2120

22-
EMPTY_SCM_XML = """
23-
<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<project>\n <actions/>\n <description></description>\n <keepDependencies>false</keepDependencies>\n <properties/>\n <scm class="hudson.scm.NullSCM"/>\n <canRoam>true</canRoam>\n <disabled>false</disabled>\n <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>\n <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>\n <triggers/>\n <concurrentBuild>false</concurrentBuild>\n <builders/>\n <publishers/>\n <buildWrappers/>\n</project>
21+
EMPTY_SCM_XML = """<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<project>\n <actions/>\n <description></description>\n <keepDependencies>false</keepDependencies>\n <properties/>\n <scm class="hudson.scm.NullSCM"/>\n <canRoam>true</canRoam>\n <disabled>false</disabled>\n <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>\n <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>\n <triggers/>\n <concurrentBuild>false</concurrentBuild>\n <builders/>\n <publishers/>\n <buildWrappers/>\n</project>
2422
"""
2523

2624

@@ -177,5 +175,21 @@ def test_check_job(self, patched_get_job_name):
177175
job_name = JenkinsCli(self.args)._check_job('Job1')
178176
self.assertEqual(job_name, 'Job1')
179177

178+
def test_get_scm_name_and_node(self):
179+
root = ElementTree.fromstring(GIT_SCM_XML.encode('utf-8'))
180+
name, branch_node = JenkinsCli(self.args)._get_scm_name_and_node(root)
181+
self.assertEqual(name, 'Git')
182+
self.assertEqual(branch_node.text, 'cli-tests')
183+
184+
root = ElementTree.fromstring(HG_SCM_XML.encode('utf-8'))
185+
name, branch_node = JenkinsCli(self.args)._get_scm_name_and_node(root)
186+
self.assertEqual(name, 'Mercurial')
187+
self.assertEqual(branch_node.text, 'v123')
188+
189+
root = ElementTree.fromstring(EMPTY_SCM_XML.encode('utf-8'))
190+
name, branch_node = JenkinsCli(self.args)._get_scm_name_and_node(root)
191+
self.assertEqual(name, 'UnknownSCM')
192+
self.assertEqual(branch_node, None)
193+
180194
if __name__ == '__main__':
181195
unittest.main()

0 commit comments

Comments
 (0)