def test_commit_tagged(self): """Test get_version return expected tag when the latest commit is tagged. """ # git ls-files test_gitpy_versioning.py --error-unmatch e1 = 'test_gitpy_versioning.py' # git branch e2 = ' master\n myreschema\n new@branch\n newreschema\n* wreschema' # git describe --abbrev=0 e3 = '0.4.9' # git rev-list 0.4.9 e4 = ('d3e6528c64441c5a001cecf7e77ed902d8ea7162\n' '61bbb9ad956e6f26cdeb2a01131388e84b6a1563\n' '77cc046001766d60ffb45008973b3a04361f836a\n' '1e309d519cde0bec81ff311c81fa8f0757763b7f\n') # git log -n 1 --pretty=format :'%H' e5 = "'d3e6528c64441c5a001cecf7e77ed902d8ea7162'" args_list = [['ls-files', 'test_gitpy_versioning.py', '--error-unmatch'], ['branch'], ['describe', '--abbrev=0'], ['rev-list', '0.4.9'], ['log', '-n', '1', "--pretty=format:'%H'"]] with patch('gitpy_versioning.git', MagicMock(side_effect=[e1, e2, e3, e4, e5])) as patch_git: with patch('gitpy_versioning.open', mock_open(), create=True): self.assertEquals(gitpy_versioning.get_version(), '0.4.9') self.verify_call_sequence(patch_git, args_list) # change the tag to be package_name prefixed e3 = 'reschema-0.4.9' with patch('gitpy_versioning.git', MagicMock(side_effect=[e1, e2, e3, e4, e5])) as patch_git: with patch('gitpy_versioning.open', mock_open(), create=True): self.assertEquals(gitpy_versioning.get_version('reschema'), e3) args_list[3][1] = e3 self.verify_call_sequence(patch_git, args_list)
def run(self): path = 'steelscript/commands/steel.py' bootstrap = 'steel_bootstrap.py' with open(path) as f: lines = f.readlines() for i, line in enumerate(lines): if line.startswith('__VERSION__'): lines[i] = "__VERSION__ = '%s'" % get_version() with open(bootstrap, 'w') as f: f.writelines(lines) print '%s written.' % bootstrap
#source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = u'SteelScript SteelHead Access' copyright = u'2014 Riverbed Technology, Inc.' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # from gitpy_versioning import get_version # The short X.Y version. version = get_version() # The full version, including alpha/beta/rc tags. release = get_version() # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files.
from distutils.core import setup packagedata = False def find_packages(where='steelscript', exclude=None): return [p for (p, files, dirs) in os.walk(where) if '__init__.py' in files] from gitpy_versioning import get_version test = ('selenium', 'mock', 'celerytest') doc = [] setup_args = { 'name': 'steelscript.appfwk', 'namespace_packages': ['steelscript'], 'version': get_version(), 'author': 'Riverbed Technology', 'author_email': '*****@*****.**', 'url': 'http://pythonhosted.org/steelscript', 'license': 'MIT', 'description': 'Core apps for Riverbed SteelScript Application Framework', 'long_description': """Core apps for SteelScript Application Framework ==================================================== The SteelScript Application Framework makes it easy to create a fully custom web application that mashes up data from multiple sources. It comes pre-configured with several reports for NetProfiler and NetShark. For a complete guide to installation, see:
self.test_args = [] self.test_suite = True def run_tests(self): # import here, cause outside the eggs aren't loaded import pytest errno = pytest.main("%s tests" % " ".join(self.test_args)) sys.exit(errno) test = ['pytest', 'testfixtures', 'mock'] doc = ['sphinx'] setup(name='steelscript.steelhead', namespace_packages=['steelscript'], version=get_version(), author='Riverbed Technology', author_email='*****@*****.**', url='http://pythonhosted.org/steelscript', license='MIT', description=('Python modules for interacting with ' 'Riverbed SteelHead with SteelScript'), long_description="""SteelScript for SteelHead ========================= This package provides device specific bindings for interacting with Riverbed SteelHead devices as part of the Riverbed Steelscript for Python. For a complete guide to installation, see:
def test_non_dev_and_dev(self): """ Test get_version function in various scenarios. 1. First test case the latest commit is not tagged And the recent applicable tag is not on a parent tag And the recent applicable tag is non-development version 2. Second test case the latest commit is not tagged And the recent applicable tag is not on a parent tag And the recent applicable tag is development version """ # git ls-files test_gitpy_versioning.py --error-unmatch e1 = 'test_gitpy_versioning.py' # git branch e2 = ' child\n* grand-child\n master' # git describe --abbrev=0 e3 = '1.1' # git rev-list 1.1 e4 = ('7ce9dfa80816ea61e112b9911f30d812e9567cf5\n' 'b6bccdef2df3c0e0293c4ebfa372a82fc328b654\n' 'aeb6d4612b6da9310ca2859ab53c99edf97fc08c\n' 'eae4fe83dc592de6e20eca726126ee15b6b21f9b') # git log -n 1 --pretty=format:'%H' e5 = "'ea1d6aae6b2f89721fc200d752119ffb1bbdc861'" # git for-each-ref --sort=taggerdate # --format '%(refname) %(taggerdate)' refs/tags e6 = ("'refs/tags/1.0 Fri Sep 26 09:59:53 2014 -0400'\n" "'refs/tags/1.1 Fri Sep 26 11:22:12 2014 -0400'") # git rev-list 1.1 e7 = e4 # git branch --contains 7ce9dfa80816ea61e112b9911f30d812e9567cf5 e8 = '* grand-child' # git show-branch e9 = ('! [child] commit-on-child\n' ' * [grand-child] another commit on grandchild\n' ' ! [master] commit-on-master\n' '---\n' ' * [grand-child] another commit on grandchild\n' ' * [grand-child^] commit on grand child\n' '+* [child] commit-on-child\n' '+*+ [master] commit-on-master') # git rev-list --count HEAD e10 = '5' # git rev-list --count 1.1 e11 = '4' args_list = [['ls-files', 'test_gitpy_versioning.py', '--error-unmatch'], ['branch'], ['describe', '--abbrev=0'], ['rev-list', '1.1'], ['log', '-n', '1', "--pretty=format:'%H'"], ['for-each-ref', '--sort=taggerdate', '--format', "'%(refname) %(taggerdate)'", 'refs/tags'], ['rev-list', '1.1'], ['branch', '--contains', '7ce9dfa80816ea61e112b9911f30d812e9567cf5'], ['show-branch'], ['rev-list', '--count', 'HEAD'], ['rev-list', '--count', '1.1']] with patch('gitpy_versioning.git', MagicMock(side_effect=[e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11])) as patch_git: with patch('gitpy_versioning.open', mock_open(), create=True): self.assertEquals(gitpy_versioning.get_version(), '1.2.dev1') self.verify_call_sequence(patch_git, args_list) # test git rev-list --count fallback # Instead of returning '5' and '4', return text with that many # lines in it. The contents of the lines are ignored. # The last call is replaced by retries without --count. fallback_args_list = args_list[:-1] fallback_args_list.extend((['rev-list', 'HEAD'], ['rev-list', '1.1'])) with patch('gitpy_versioning.git', MagicMock(side_effect=[e1, e2, e3, e4, e5, e6, e7, e8, e9, EnvironmentError, '1\n2\n3\n4\n5', '1\n2\n3\n4'])) as patch_git: with patch('gitpy_versioning.open', mock_open(), create=True): self.assertEquals(gitpy_versioning.get_version(), '1.2.dev1') self.verify_call_sequence(patch_git, fallback_args_list) # test with package name prefixing e3 = 'version-1.1' e6 = ("'refs/tags/version-1.0 Fri Sep 26 09:59:53 2014 -0400'\n" "'refs/tags/version-1.1 Fri Sep 26 11:22:12 2014 -0400'") with patch('gitpy_versioning.git', MagicMock(side_effect=[e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11])) as patch_git: with patch('gitpy_versioning.open', mock_open(), create=True): self.assertEquals(gitpy_versioning.get_version('version'), 'version-1.2.dev1') args_list[3][1] = e3 args_list[6][1] = e3 args_list[10][2] = e3 self.verify_call_sequence(patch_git, args_list) # Test case when the recent applicable tag is development release e3 = '1.1.dev1' e6 = ("'refs/tags/1.0 Fri Sep 26 09:59:53 2014 -0400'\n" "'refs/tags/1.1.dev1 Fri Sep 26 11:22:12 2014 -0400'") with patch('gitpy_versioning.git', MagicMock(side_effect=[e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11])) as patch_git: with patch('gitpy_versioning.open', mock_open(), create=True): self.assertEquals(gitpy_versioning.get_version(), '1.1.dev2') args_list[3][1] = e3 args_list[6][1] = e3 args_list[10][2] = e3 self.verify_call_sequence(patch_git, args_list) # Test case when pkg_name prefixing e3 = 'version-1.1.dev1' e6 = ("'refs/tags/version-1.0 Fri Sep 26 09:59:53 2014 -0400'\n" "'refs/tags/version-1.1.dev1 Fri Sep 26 11:22:12 2014 -0400'") with patch('gitpy_versioning.git', MagicMock(side_effect=[e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11])) as patch_git: with patch('gitpy_versioning.open', mock_open(), create=True): self.assertEquals(gitpy_versioning.get_version('version'), 'version-1.1.dev2') args_list[3][1] = e3 args_list[6][1] = e3 args_list[10][2] = e3 self.verify_call_sequence(patch_git, args_list)
def test_parent_branch(self): """ Test get_version when recent tag is on a parent branch. need to mock a git function to return a sequence of results """ # git ls-files test_gitpy_versioning.py --error-unmatch e1 = 'test_gitpy_versioning.py' # git branch e2 = ' child\n* grand-child\n master' # git describe --abbrev=0 e3 = '1.0' # git rev-list 1.0 e4 = ('aeb6d4612b6da9310ca2859ab53c99edf97fc08c\n' 'eae4fe83dc592de6e20eca726126ee15b6b21f9b') # git log -n 1 --pretty=format:'%H' e5 = "'7ce9dfa80816ea61e112b9911f30d812e9567cf5'" # git for-each-ref --sort=taggerdate # --format '%(refname) %(taggerdate)' refs/tags e6 = "'refs/tags/1.0 Fri Sep 26 09:59:53 2014 -0400'" # git rev-list 1.0 e7 = e4 # git branch --contains aeb6d4612b6da9310ca2859ab53c99edf97fc08c e8 = ' child\n* grand-child' # git show-branch e9 = ('! [child] commit-on-child\n' ' * [grand-child] commit on grand child\n' ' ! [master] commit-on-master\n' '---\n' ' * [grand-child] commit on grand child\n' '+* [child] commit-on-child\n' '+*+ [master] commit-on-master') # git for-each-ref --sort=taggerdate # --format '%(refname) %(taggerdate)' refs/tags e10 = e6 # git rev-list --count HEAD e11 = '4' # git rev-list --count 1.0 e12 = '2' args_list = [['ls-files', 'test_gitpy_versioning.py', '--error-unmatch'], ['branch'], ['describe', '--abbrev=0'], ['rev-list', '1.0'], ['log', '-n', '1', "--pretty=format:'%H'"], ['for-each-ref', '--sort=taggerdate', '--format', "'%(refname) %(taggerdate)'", 'refs/tags'], ['rev-list', '1.0'], ['branch', '--contains', 'aeb6d4612b6da9310ca2859ab53c99edf97fc08c'], ['show-branch'], ['for-each-ref', '--sort=taggerdate', '--format', "'%(refname) %(taggerdate)'", 'refs/tags'], ['rev-list', '--count', 'HEAD'], ['rev-list', '--count', '1.0']] with patch('gitpy_versioning.git', MagicMock(side_effect=[e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12])) as patch_git: with patch('gitpy_versioning.open', mock_open(), create=True): self.assertEquals(gitpy_versioning.get_version(), '1.0+git.grand-child.2.7ce9dfa') self.verify_call_sequence(patch_git, args_list) # test with package name prefixing e3 = 'version-1.0' e6 = "'refs/tags/version-1.0 Fri Sep 26 09:59:53 2014 -0400'" e10 = e6 with patch('gitpy_versioning.git', MagicMock(side_effect=[e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12])) as patch_git: with patch('gitpy_versioning.open', mock_open(), create=True): self.assertEquals(gitpy_versioning.get_version('version'), 'version-1.0+git.grand-child.2.7ce9dfa') args_list[3][1] = e3 args_list[6][1] = e3 args_list[11][2] = e3 self.verify_call_sequence(patch_git, args_list)
# as set forth in the License. from glob import glob from setuptools import setup, find_packages packagedata = True from gitpy_versioning import get_version test = ['vcrpy', 'mock', 'pytest'] setup_args = { 'name': 'steelscript.netprofiler', 'namespace_packages': ['steelscript'], 'version': get_version(), 'author': 'Riverbed Technology', 'author_email': '*****@*****.**', 'url': 'http://pythonhosted.org/steelscript', 'license': 'MIT', 'description': 'Python module for interacting with Riverbed ' 'NetProfiler with SteelScript', 'long_description': '''SteelScript for NetProfiler =========================== SteelScript is a collection of libraries and scripts in Python and JavaScript for interacting with Riverbed Technology devices. For a complete guide to installation, see:
readme = open('README.rst').read() doc = [ 'sphinx', ] test = [ 'pytest', 'mock', 'requests_mock' ] setup( name='sleepwalker', version=get_version(), description=("sleepwalker - Interact with REST-servers using " "reschema-based schemas"), long_description=readme, author="Riverbed Technology", author_email="*****@*****.**", packages=[ 'sleepwalker', ], package_dir={'sleepwalker': 'sleepwalker'}, scripts=[ ], include_package_data=True, install_requires=[ "requests", "uritemplate",