mirror of
				https://github.com/balkian/pre-commit-hooks.git
				synced 2025-11-04 09:08:18 +00:00 
			
		
		
		
	First commit
This commit is contained in:
		
							
								
								
									
										0
									
								
								tests/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								tests/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										64
									
								
								tests/test_branchversion.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								tests/test_branchversion.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
"""
 | 
			
		||||
Tests for `branchversion` module.
 | 
			
		||||
"""
 | 
			
		||||
import pytest
 | 
			
		||||
import os
 | 
			
		||||
import shutil
 | 
			
		||||
import unittest
 | 
			
		||||
from contextlib import contextmanager
 | 
			
		||||
from subprocess import check_output
 | 
			
		||||
from balkian_pre_commit import branchversion 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
TEMP_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)),
 | 
			
		||||
                        'test-precommit')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@contextmanager
 | 
			
		||||
def cd(newdir):
 | 
			
		||||
    prevdir = os.getcwd()
 | 
			
		||||
    os.chdir(os.path.expanduser(newdir))
 | 
			
		||||
    try:
 | 
			
		||||
        yield
 | 
			
		||||
    finally:
 | 
			
		||||
        os.chdir(prevdir)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TestBalkian_pre_commit(unittest.TestCase):
 | 
			
		||||
 | 
			
		||||
    def commit_version(self, version, branch='master'):
 | 
			
		||||
        with cd(TEMP_DIR):
 | 
			
		||||
            check_output(['git', 'checkout', '-B', branch])
 | 
			
		||||
            with open('VERSION', 'w') as f:
 | 
			
		||||
                f.write(version)
 | 
			
		||||
            check_output(['git', 'add', 'VERSION'])
 | 
			
		||||
            check_output(['git', 'commit', '-am', 'Committing to branch {}'.format(branch)])
 | 
			
		||||
 | 
			
		||||
    def initRepo(self):
 | 
			
		||||
        self.tearDown()
 | 
			
		||||
        os.makedirs(TEMP_DIR)
 | 
			
		||||
        check_output(['git', 'init', TEMP_DIR])
 | 
			
		||||
        with cd(TEMP_DIR):
 | 
			
		||||
            with open('README.md', 'w') as f:
 | 
			
		||||
                f.write('Hello')
 | 
			
		||||
            check_output(['git', 'add', '.'])
 | 
			
		||||
            check_output(['git', 'commit', '-am', 'First commit'])
 | 
			
		||||
 | 
			
		||||
    def setUp(self):
 | 
			
		||||
        self.initRepo()
 | 
			
		||||
 | 
			
		||||
    def tearDown(self):
 | 
			
		||||
        if os.path.isdir(TEMP_DIR):
 | 
			
		||||
            shutil.rmtree(TEMP_DIR)
 | 
			
		||||
 | 
			
		||||
    def test_success(self):
 | 
			
		||||
        self.initRepo()
 | 
			
		||||
        with cd(TEMP_DIR):
 | 
			
		||||
            self.commit_version('0.1.0', 'master')
 | 
			
		||||
            assert branchversion.main(['VERSION',])==0
 | 
			
		||||
 | 
			
		||||
    def test_fail(self):
 | 
			
		||||
        self.initRepo()
 | 
			
		||||
        with cd(TEMP_DIR):
 | 
			
		||||
            self.commit_version('0.1.0-pre.4', 'master')
 | 
			
		||||
            assert branchversion.main(['VERSION',])==1
 | 
			
		||||
		Reference in New Issue
	
	Block a user