Merge pull request #36 from RightBrain-Networks/test/branch
Basic Unit Testing
This commit is contained in:
		
							
								
								
									
										2
									
								
								.github/ISSUE_TEMPLATE/4_guidance.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/ISSUE_TEMPLATE/4_guidance.md
									
									
									
									
										vendored
									
									
								
							@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: 🧭 Guidance
 | 
					name: 🧭 Guidance
 | 
				
			||||||
about: Ideas to improve auto-semver
 | 
					about: Having issues setting up or using auto-semver
 | 
				
			||||||
labels: 'help wanted'
 | 
					labels: 'help wanted'
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										23
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							@ -55,6 +55,29 @@ pipeline {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    stage('Test') {
 | 
				
			||||||
 | 
					      agent {
 | 
				
			||||||
 | 
					          docker {
 | 
				
			||||||
 | 
					              image "rightbrainnetworks/auto-semver:${env.VERSION}"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      steps
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        dir('semver')
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          sh 'python tests.py'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      post{
 | 
				
			||||||
 | 
					        // Update Git with status of test stage.
 | 
				
			||||||
 | 
					        success {
 | 
				
			||||||
 | 
					          updateGithubCommitStatus(GITHUB_URL, 'Passed test stage', 'SUCCESS', 'Test')
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        failure {
 | 
				
			||||||
 | 
					          updateGithubCommitStatus(GITHUB_URL, 'Failed test stage', 'FAILURE', 'Test')
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    stage('Push')
 | 
					    stage('Push')
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      steps {
 | 
					      steps {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								semver/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								semver/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					test
 | 
				
			||||||
							
								
								
									
										82
									
								
								semver/tests.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								semver/tests.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,82 @@
 | 
				
			|||||||
 | 
					import unittest, os, subprocess, semver
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from semver import get_version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config_data = """
 | 
				
			||||||
 | 
					[bumpversion]
 | 
				
			||||||
 | 
					current_version = 0.0.0
 | 
				
			||||||
 | 
					commit = False
 | 
				
			||||||
 | 
					tag = True
 | 
				
			||||||
 | 
					tag_name = {new_version}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[semver]
 | 
				
			||||||
 | 
					main_branches = master
 | 
				
			||||||
 | 
					major_branches = major
 | 
				
			||||||
 | 
					minor_branches = minor
 | 
				
			||||||
 | 
					patch_branches = patch
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_directory = "test"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TestSemverObject(unittest.TestCase):
 | 
				
			||||||
 | 
					    def test_get_version_type_major_merge(self):
 | 
				
			||||||
 | 
					        semver_object = semver.SemVer()
 | 
				
			||||||
 | 
					        semver_object.merged_branch = "major/unittest"
 | 
				
			||||||
 | 
					        semver_object.get_version_type()
 | 
				
			||||||
 | 
					        self.assertEqual(semver_object.version_type, "major")
 | 
				
			||||||
 | 
					    def test_get_version_type_minor_merge(self):
 | 
				
			||||||
 | 
					        semver_object = semver.SemVer()
 | 
				
			||||||
 | 
					        semver_object.merged_branch = "minor/unittest"
 | 
				
			||||||
 | 
					        semver_object.get_version_type()
 | 
				
			||||||
 | 
					        self.assertEqual(semver_object.version_type, "minor")
 | 
				
			||||||
 | 
					    def test_get_version_type_patch_merge(self):
 | 
				
			||||||
 | 
					        semver_object = semver.SemVer()
 | 
				
			||||||
 | 
					        semver_object.merged_branch = "patch/unittest"
 | 
				
			||||||
 | 
					        semver_object.get_version_type()
 | 
				
			||||||
 | 
					        self.assertEqual(semver_object.version_type, "patch")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TestGetVersion(unittest.TestCase):
 | 
				
			||||||
 | 
					    def test_get_branch_version(self):
 | 
				
			||||||
 | 
					        create_git_environment()
 | 
				
			||||||
 | 
					        branch = get_version.get_version()
 | 
				
			||||||
 | 
					        self.assertEqual(branch, "master")
 | 
				
			||||||
 | 
					    def test_branch_dotting(self):
 | 
				
			||||||
 | 
					        create_git_environment()
 | 
				
			||||||
 | 
					        subprocess.run(['git', 'checkout', '-b', 'test/branch'])
 | 
				
			||||||
 | 
					        branch = get_version.get_version(True)
 | 
				
			||||||
 | 
					        self.assertEqual(branch, "test.branch")
 | 
				
			||||||
 | 
					    def test_branch_dotting_false(self):
 | 
				
			||||||
 | 
					        create_git_environment()
 | 
				
			||||||
 | 
					        subprocess.run(['git', 'checkout', '-b', 'test/branch'])
 | 
				
			||||||
 | 
					        branch = get_version.get_version(False)
 | 
				
			||||||
 | 
					        self.assertEqual(branch, "test/branch")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TestGetTagVersion(unittest.TestCase):
 | 
				
			||||||
 | 
					    def test_get_version_tag(self):
 | 
				
			||||||
 | 
					        create_git_environment()
 | 
				
			||||||
 | 
					        subprocess.run(['git', 'tag', '1.0.0'])
 | 
				
			||||||
 | 
					        tag = get_version.get_tag_version()
 | 
				
			||||||
 | 
					        self.assertEqual(tag, "1.0.0")
 | 
				
			||||||
 | 
					    def test_default_get_version_tag(self):
 | 
				
			||||||
 | 
					        create_git_environment()
 | 
				
			||||||
 | 
					        tag = get_version.get_tag_version()
 | 
				
			||||||
 | 
					        self.assertEqual(tag, "0.0.0")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def create_git_environment():
 | 
				
			||||||
 | 
					    subprocess.run(['rm', '-rf', './.git'])
 | 
				
			||||||
 | 
					    subprocess.run(['git', 'init'])
 | 
				
			||||||
 | 
					    subprocess.run(['touch', 'file.txt'])
 | 
				
			||||||
 | 
					    subprocess.run(['git', 'add', 'file.txt'])
 | 
				
			||||||
 | 
					    subprocess.run(['git', 'commit', '-m', 'file.txt'])
 | 
				
			||||||
 | 
					    subprocess.run(['git', 'remote', 'add', 'origin', os.getcwd()+'/.git'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    subprocess.run(['rm', '-rf', test_directory])
 | 
				
			||||||
 | 
					    subprocess.run(['mkdir', test_directory])
 | 
				
			||||||
 | 
					    os.chdir(test_directory)
 | 
				
			||||||
 | 
					    with open('.bumpversion.cfg', "w") as config:
 | 
				
			||||||
 | 
					        config.write(config_data)
 | 
				
			||||||
 | 
					    unittest.main()
 | 
				
			||||||
 | 
					    os.chdir("..")
 | 
				
			||||||
		Reference in New Issue
	
	Block a user